راک روتسد لماع متسیس هاگشیامزآ

Size: px
Start display at page:

Download "راک روتسد لماع متسیس هاگشیامزآ"

Transcription

1 خدا نام به کار دستور عامل سیستم آزمایشگاه کامپیوتر مهندسی گروه مهندسی دانشکدهی کاشان دانشگاه کننده تهیه یوسفان احمد ۱ کاشان دانشگاه مهندسی دانشکدهی کامپیوتر گروه عامل سیستم آزمایشگاه گزارش یوسفان احمد

2 ۱ ۱ ۱ ۱ ۲ ۲ ۲ ۲ ۳ ۳ ۴ ۴ ۵ ۵ ۶ ۶ ۷ ۶ ۶ مطالب فهرست...1 کار دستور عامل... 1 سیستم آزمایشگاه کار... 4 محیط : یکم بخش knoppix با آشنایی ۱ knoppix چرا ۱ 4...unix در فایل سیستم ۲...7 نویسی برنامه ۳...7 کار دستور ۴...8 linux با بیشتر کار ۲ فرمان... 9 خط برنامهی نوشتن ۱ کارها انجام برای python زبان ۲...11 منبع کد روی از برنامهها نصب و کامپایل ۳...12 کار دستور ۴ 13...linux در نویسی برنامه : دوم بخش فرآیندها با کار ۳ فرمانها ۱ برنامهنویسی ۲ کار دستور شاخهها و پروندهها با کار ۴ برنامهنویسی ۱...22 کار دستور ۲ 23...linux در لولهها : سوم بخش نام بدون لولههای ۵ نمونه برنامهی ۱...26 کار دستور ۲ نام با لولههای ۶ مشتری کارگزار برنامهی ۱...29 مشتری برنامهی ۱ ۱...30 کارگزار برنامهی ۲ ۲...32 کار دستور ۳ پیام صفهای : سوم بخش مشترک حافظهی ۷ کار دستور ۱ ۲ کاشان دانشگاه مهندسی دانشکدهی کامپیوتر گروه عامل سیستم آزمایشگاه گزارش یوسفان احمد

3 ۸ ۹...43 راهنماها ۸ کار دستور ۱ 49...windows : پنجم بخش دستورها از برخی با آشنایی ۹ کار دستور ۱ فرمان خط دستورهای ۱۰...54 کار دستور ۱ ۱۰...57 منابع فهرست...57 نمایه kjlkjlkjkljlk kljlk 58...lkhjlkjlkjl;jlj 58...kjhkjhkjhkjhkjhkjhkjhk ۳ کاشان دانشگاه مهندسی دانشکدهی کامپیوتر گروه عامل سیستم آزمایشگاه گزارش یوسفان احمد

4 ۱ کار محیط : یکم بخش به بتوان که میشود معرفی محیطی آغاز در است. شده پیشنهاد گوناگونی محیطهای و ابزارها عامل سیستم آزمایشگاه برای لینوکس با کار سادگی داد. انجام آن در شده سازی شبیه نه و واقعی صورت به را عامل سیستم پروژههای و تمرینها سادگی جز به میتوان است. آن خوب ویژگیهای از آن در ++C و C باز متن کامپایلر آخرین بودن فراهم و knoppix زندهی باشد داشته وجود کامپایلرهایی محیط آن در باید کم دست برد. کار به برنامهها گسترش برای را دیگری محیط knoppix نمایند. رعایت را ++C و C نوین استانداردهای خوبی به که knoppix با آشنایی ۱ فراهم را امکان این زنده دیسک فنآوری است. debian گونهی از linux پایهی بر (live cd) زنده دیسک یک knoppix نسخههای از بسیاری در امروزه کند. آزمایش را آن و کند کار آن با بتواند عامل سیستم نصب به نیاز بدون کاربر تا میکند عاملها سیستم از دیگر برخی و NetBSD و freebsd و linux گونههای مانند unix ردهی در عامل سیستمهای گوناگون نمود. آزمایش نیز را آنها زندهی دیسک نسخهی میتوان KDE گرافیکی محیط با و است کارگیری به آمادهی knoppix گرافیکی محیط شدن آماده و افزار سخت شناسایی از پس بدون و هستیم واقعی linux عامل سیستم یک آزمایش آماده اکنون میکند. فراهم کاربر برای را شایسته گرافیکی رابط یک که زمانی تا فقط تغییری هرگونه زیرا میگیریم کار به را آن باشد داشته پی در است ممکن که دردسرهایی و نصب به نیاز را تنظیمها شد خواهد گفته این از پس که گونهای به بخواهیم اینکه مگر ماند خواهد باقی است اجرا حال در عامل سیستم کنیم. ذخیره knoppix چرا ۱ است. دسترس در نیز آن DVD گونهی همزمان و میشود روز به و پشتیبانی بخوبی که است سال چندین زنده دیسک این این ویژگی مهمترین میآورد. فراهم را ساده نسبتا محیط یک و میگیرد کار به را آنها و میشناسد را افزارها سخت بخوبی کامپایلر برداشتن در میکند عامل سیستم آزمایشگاه شایستهی را آن و است کرده حفظ نیز را آن کنون تا که زنده دیسک دیگر زنده دیسکها بیشتر در و است نیاز آن به درس این تمرینها و پروژههای کردن آماده برای که است آن در GCC مشهور است. آن بودن روز به زنده دیسک این ویژگیهای از دیگر یکی ندارد. وجود کامپایلر این unix در فایل سیستم ۲ ۱ ساختار این دارد. وجود یکسان بندی شاخه و پرونده ساختار یک هستند unix پایهی بر که عاملهایی سیستم همهی در است. درخت این ریشهی گرهی «/» که است درختی صورت به پرونده ۴ کاشان دانشگاه مهندسی دانشکدهی کامپیوتر گروه عامل سیستم آزمایشگاه گزارش یوسفان احمد

5 میتوان و قالب یک دارای آن گوناگون بخشهای که نیست نیازی که است گونهای به unix در پرونده سیستم در mount دستور کمک به افزود. آن) (شاخههای پرونده سیستم به را گوناگون قالبهای با گوناگون سازی ذخیره دستگاههای نام با گزینههای (برای - با اغلب دستور یک (option) گزینههای unix سیستمهای در داد. انجام را کار این میتوان میشود. گرفته کار به کامل) نام با گزینههای (برای -- یا اختصاری) دستورها از برخی نام شرح آرگومان(ها) گزینهها نمونه ls -al *.cpp l, a فهرست دادن نشان پروندهها نام از بخشی یا پروندهها نام یا پرونده [نام پرونده] (حتی cpp پسوند با پروندههای فهرست آن دربارهی بیشتر اطلعات با ه همرا پنهان) پروندهها ls cd /usr/bin - شاخه تغییر شاخه] [نام cd کنونی شاخهی نمایش pwd cp /usr/bin/at /home/knoppix/at R یا پرونده کردن کپی مبدأ شاخه نام مقصد] شاخه [نام cp شاخه یا پروندهها f, r شاخه یا پرونده کردن حذف شاخه یا پرونده نام rm شاخه کردن حذف rmdir mv /home/knoppix/at //home/knoppix/desktop f یا پرونده دادن حرکت شاخه مبدأ شاخه نام مقصد] شاخه [نام mv mkdir test شاخه ساخت شاخه نام mkdir cat ورودی یا پرونده(ها) اتصال ورودی فرستادن cat خروجی به آن فرستادن و خروجی به استاندارد f1.txt پروندهی نمایش cat f1.txt less less file1.txt پرونده صفحهای نمایش پرونده نام less /proc/cpuinfo tar -zxvf file.tar.gz v,z,x,f [T-] SOURCE DEST به افزودن یا ساختن tar ۵ کاشان دانشگاه مهندسی دانشکدهی کامپیوتر گروه عامل سیستم آزمایشگاه گزارش یوسفان احمد

6 u c SOURCE DIRECTORY -t SOURCE DIRECTORY باز یا بایگانی پروندههای آنها کردن su سیستم مدیر حالت su shutdown -r now shutdown -h now r h [time] رایانه کردن خاموش shutdown man ls متنی راهنمای برنامه] [نام man عبور کلمهی تغییر کاربر] [نام passwd mount -t msdos /dev/fd0 /mnt/floppy mount -t vfat /dev/hda /mnt/win_c میرود. کار به fat32 برای بال دستور mount - a t a mount -t type dev dir دستگاه یک کردن سوار آن از بخشی یا جانبی سوار dir شاخهی در را type نوع با dev دستگاه میکند سوار درون / etc/fstab / دستگاههای همهی میشوند Mount s- یک به پیوند یک ساخت پرونده یک یا شاخه s- T- میشود) اشاره آن به که برنامهای (نام link_name Ln -s -T /usr/local/seamonkey/seamonkey /home/ user/desktop/seamonkey ساخته نمادی صورت به اجرایی برنامهی به پیوند یک میشود. ln انجام (مدیر) ریشه کاربر کمک به پایه و سیستمی کارهای از بسیاری است. مجوزها بالترین دارای کاربری ریشه کاربر میافزاید. عامل سیستم کاربران به را Bob نام به کاربری زیر دستور دارد. را دسترسی سطح بالترین مدیر کاربر و میشود adduser Bob از پس نمایند. اجرا را دستور این نمیتوانند معمولی کاربران که حالی در کند اجرا میتواند ریشه کاربر را adduser دستور نآ در را خود پوشههای و پروندهها میتواند کاربر و میشود ساخته home در او نام به شاخهای کاربر این شدن ساخته صورت به نیز را پیچیدهتری کارهای میتوان اغلب میشود. ذخیره شاخه این در نیز کاربر تنظیمات از برخی کند. ذخیره داد. انجام دستورها کمک به ترکیبی cat f1.txt - f2.txt خروجی به f2 سپس و استاندارد خروجی به استاندارد(-) ورودی سپس استاندارد خروجی به f1 پروندهی نمایش استاندارد داد. تغییر دستور یک برای (<) و (>) کمک به را استاندارد خروجی و ورودی میتوان همچنین cat f1.txt > f2.txt cat f1 f2 > f3 میکند) رونویسی وجود صورت در یا و میسازد را میکند( f2.txt کپی f2.txt پروندهی روی بر را f1.txt پروندهی میریزد. f3 پروندهی در را نتیجه و میزند پیوند را f2 و f1 پروندههای فرستاد. دیگر برنامه یک برای را برنامه یک خروجی میتوان (pipe) لولهها کمک با ls less ls less lpr میشود. داده نشان صفحه صفحه صورت به شاخههای و پروندهها فهرست میشود. فرستاده چاپگر به صفحه به صفحه صورت به پروندهها فهرست است. شده داده نشان لینوکس از دستوری در منظم عبارتهای کارگیری به زیر در ۶ کاشان دانشگاه مهندسی دانشکدهی کامپیوتر گروه عامل سیستم آزمایشگاه گزارش یوسفان احمد

7 ۱ ۱ نویسی برنامه ۳ #include<stdio.h> int main(int argc, char *argv[]){ printf("%d\n",argc); for(;*argv;argv++) printf("%s\n",*argv); fflush(stdout); return 0; به میتوانید (vi یا kate (همچون متن ویرایش محیط یک کردن باز با با سپس کنید. ذخیره را آن و بنویسید c زبان به را خود برنامهی سادگی به شاخه تغییر و (xterm نمونه (برای فرمان خط پنجرهی کردن باز برنامهی زیر فرمان کمک به کردهاید ذخیره آن در را برنامه که شاخهای به روبرو در prog1.c برنامهی نمایید. اجرا سپس و نمایید کامپایل را خود محیط در آن اجرا و ترجمه چگونگی زیر در و است شده نوشته c زبان در بگیرید کمک ویرایش برای kate برنامه با اگر است. شده نوشته متنی و باشید داشته نیز (terminal) فرمان خط میتوانید همزمان برنامه این کنید. اجرا و کامپایل را برنامه و برنامه کامپایل برای prog1.o ساخت برنامه اجرای برنامه خروجیهای خط آرایه عنصر نخستین برنامه نام (argv) فرمان است. g++ prog1.cpp -o prog1.o./prog1.o linux 2./prog1.out linux 0 [ ] argv '.' '/' ' p' ' r' ' o' ' g' ' 1' '.' ' o' ' u' 't' '\0' 1 ' l' ' i' ' n' ' u' ' x' '\0' 2 NULL (project نمایید(ساخت ترجمه هم با میسازند را برنامه یک متن هم با که را برنامه پروندهی چندین میتوانید همچنین g++ prog2_part1.cpp prog2_part2.cpp prog2_part3.cpp prog2_part4.cpp -o prog2.o نمود. debug را برنامه یک میتوان gdb کمک به کار دستور ۴ دهید فشار را Alt+ F2 ترکیبی کلید ۱ ۷ کاشان دانشگاه مهندسی دانشکدهی کامپیوتر گروه عامل سیستم آزمایشگاه گزارش یوسفان احمد

8 ۳ ۳ ۳ kcontrol کنید: تایپ ۲ بنویسید کار گزارش در و دهید انجام را زیر کارهای ۳ زمینه پس تغییر ۱ کاربری محیط تعداد تغییر ۲ فارسی زبان افزودن و زبان تغییر ۳ را شبکه کارت و برگزینید configuration گزینهی سپس کنید. انتخاب را پنگوئن (Icon) شمایل وظیفه نوار روی بر ۴ را مرورگر آن از پس کنید. پیدا دسترسی samba کمک به خود شخصی شاخهی و شبکه به میتوانید اکنون کنید. فعال بنویسید. خود کار گزارش در را روند این شوید. وصل جهانی شبکهی به و کنید تنظیم دستگاه یا نرم یا سخت دیسک روی بر را کنونی تنظیمهای همهی میتوانید شد گفته ۴ در که تنظیمها بخش همان در ۵ باشید. داشته را خود تنظیمهای میتوانید زنده دیسک اجرای کار به آغاز هنگام پس این از کنید. ذخیره دیگر سازی ذخیره نوشتنی خواندنی به خواندنی فقط حالت از درایو یک کردن تبدیل امکان man دستور کمک به متنی حالت در و است ساده linux در راهنمایی گرفتن ببینید. man کمک به را ls دستور جزییات میتوانید نمونه برای بیابید. را دستور یک توضیحهای میتوانید man ls نمایید. اجرا را xman برنامهی گرافیکی صورت به راهنمایی دیدن برای درستی به که دارد وجود احتمال این همیشه میکنید دریافت جهانی شبکهی از بزرگ بویژه را پروندهای که هنگامی دریافت را بزرگ پروندهی یک جهانی شبکهی در که مکانهایی بیشتر در باشد. نادرست آن از بخشی و باشد نشده دریافت این در است. شده گذاشته md5.asc یا md5 پسوند با و بزرگ پروندهی آن با همنام اغلب کوچک پروندهی یک میکنید پروندهی درستی بررسی برای و است بزرگ پروندهی امضای که است شده گذاشته کاراکتر سری یک کوچک متنی پروندهی حل راه کار این پشت تئوری جزییات به پرداختن بدون اینجا در بگیرید. کمک آن از میتوانید کردهاید دریافت که بزرگی ساخت یا بررسی برای و دارد وجود کار این انجام برای openssl برنامهی میشود. داده نشان linux کمک به آن سادهی گرفت کمک میتوان زیر شکل به دستور این از پیام) (امضای md5 openssl md5 file_name کنید. بررسی را شده گرفته پروندهی درستی میتوانید ترتیب این به و باشد پروندهای هر نام میتواند file_name اینجا در که کرد. نصب را آن میتوان ولی نیست knoppix در البته که بگیرید کمک xchm افزار نرم از chm پروندههای دیدن برای samba کارگیری به که دارد وجود حلهایی راه هستند دیگری عاملهای سیستم دارای که رایانههایی دیگر با ارتباط برای پروتکل باز متن سازی پیاده و است شده نوشته ویندوز عامل سیستمهای با ارتباط برای samba است. حلها راه این از یکی میشود. برده کار به samba ویندوز با دیگر عامل سیستمهای میان ارتباط برای است. میکروسافت شرکت از SMB/CIFS linux با بیشتر کار ۲ یابد. افزایش جلسه این در لینوکس با کار توانایی و دهیم انجام را بیشتری کار لینوکس در بناست بخش این در ۸ کاشان دانشگاه مهندسی دانشکدهی کامپیوتر گروه عامل سیستم آزمایشگاه گزارش یوسفان احمد

9 ۲ فرمان خط برنامهی نوشتن ۱ باشد. linux در فرمان خط برنامهی یک از خط نخستین باید زیر خط #!/bin/sh کی ساخت برای میشود. انجام سادهتری صورت به بایگانی کار انجام آن کمک به که میشود نوشته برنامهای اینجا در میشود برده کار به زیر دستور بایگانی پروندهی tar [option] [file] تازه بایگانی یک ساخت برای tar -cf tar -cf archive1.tar foo.txt bar.txt archive1.tar bar.txt و foo.txt پروندههای از گیری پشتیبان برای بایگانی ساخت و است. کامل بایگانی از بهتر و است بیشتر خیلی رسانی روز به سرعت اگر و باشد شده آماده پیش از پرونده که نیست نیازی است. شده آماده پیش از بایگانی یک رسانی بروز برای tar -uf دستور است. شده نوشته زیر در دستور این آرگومانهای از تعداد میشود. ساخته باشد نداشته وجود اصلی پروندههای سازی دوباره و بایگانی کردن باز برای x- incremental افزایشی صورت به گیری پشتیبان g- میشود انجام نیز سازی فشرده z- است فرض پیش صورت به گزینه این شوند بایگانی بازگشتی صورت به نیز درونی شاخههای --recursion --no-recursion است. شده نوشته کار این به مربوط دستورهای زیر در شود فشرده آمده دست به پروندهی بایگانی گرفتن از است بهتر gzip دستور یک ساخت برای c- فشرده غیر حالت به برگرداندن d- بدهد ادامه سازی فشرده کار به باز است آمده پیش دیگری مسئلهی یا دارد وجود اکنون هم پرونده اگر f- gzip -c file1 file2 > foo.gz حالت از کردن خارج برای فرض پیش bunzip2 برنامهی و است gzip از بهتر سازی فشرده برنامهی یک bzip2 دستور پارامترها است. فشرده فشرده حالت از کردن خارج d- سازی فشرده z- اصلی پروندهی شدن حذف بدون k- ۹ کاشان دانشگاه مهندسی دانشکدهی کامپیوتر گروه عامل سیستم آزمایشگاه گزارش یوسفان احمد

10 s- به کارگیری حافظهی کم سریعترین فشرده سازی بهترین فشرده سازی fast-- -1 best-- -9 دستورهای زیر نمونههایی از به کارگیری این دستور هستند. tar -zcf /mnt/win_g/usofan/course/ie/php/php_source.tgz php/ tar -xf php_source.tgz tar -uf /mnt/win_g/usofan/course/ie/php/php_source.tar /var/www/html/php tar -uf usofan.tar usofan/ این دستور برای پشتیبان گیری از دادهها بسیار مناسب است و زمان زیادی نیز نیاز ندارد و فقط برای اینکه نتیجه بر روی یک cd گذاشته شود بهتر است برای گرفتن جای کمتر پروندهی بایگانی( farsi.tar ) فشرده شود. در زیر یک برنامهی کامل نوشته شده است که بتوان به کمک آن پشتیبان گیری را انجام داد. #!/bin/sh cd /home/guest/ cp -rf it/ /home/guest/articles_backups/ cd /home/guest/articles_backups/it rm -f *~ cd /home/guest/articles_backups/ echo 'enter floppy then enter version number' read ver_number tar -cf it$ver_number.tar it/ bzip2 -kz9 it$ver_number.tar cp -f it$ver_number.tar.bz2 /mnt/usofan/articles_backups/ mount /mnt/floppy/ cp -f it$ver_number.tar.bz2 /mnt/floppy/ umount /mnt/floppy/ echo 'change floppy then press enter' read pp1 mount /mnt/floppy/ cp -f it$ver_number.tar.bz2 /mnt/floppy/ umount /mnt/floppy/ rm -rf it/ rm -f it$ver_number.tar rm -f it$ver_number.tar.bz2 تکه برنامه زیر نیز به کارگیری این دستورها را نشان میدهد. a1.sh #!/bin/sh mkdir articles cp *.txt articles/ tar -zcf article.tar.gz articles/ rm -rf articles/ #date s%+ برای چاپ کردن زمان به صورت رشتهی زمانی از سال ۱۹۷۰ میلدی %Y_%m_%d_%A_%H_%S #gzip -c center_article.txt elearning.txt program_need.txt این نمیتواند کارش را به human_value_in_it.txt research_article_technology.txt >article.gz درستی انجام دهد فقط یک پرونده را میگیرد این نمیتواند کارش را به درستی انجام دهد #gzip 9c- *.txt >article.gz cp article.tar.gz /mnt/usofan/it/article.tar.gz -f cp article.tar.gz /mnt/floppy/article.tar.gz -f rm article.tar.gz -f این دستور فقط با یک پرونده کار میکند #bzip2 z- 9- center_article.txt احمد یوسفان گزارش آزمایشگاه سیستم عامل گروه کامپیوتر دانشکدهی مهندسی دانشگاه کاشان ۱۰

11 ۲ ۲ دستور نام نوشتن از پس دهید ادامه فرمان خط در کارتان به بتوانید و شود اجرا فرمان خط محیط در برنامهای اینکه برای دهید. ادامه خود کار به فرمان خط در میتوانید و شده اجرا برنامه صورت این در بگذارید & gedit & کارها انجام برای python زبان ۲ هب را برنامهها دست این میتوان و دارد وجود لینوکس عاملهای سیستم همهی در فرض پیش صورت به python زبان و دستورها برد. سود آن بودن حمل قابل از و نمود نصب سکوها انواع روی بر میتوان را زبان این مفسر نوشت. آن کمک برد. کار به تغییر به نیاز بدون گوناگون رایانههای روی بر میتوان را آنها اغلب که هستند گونهای به زبان این کتابخانههای میدهد. انجام بهتری شکل به را بال کار python زبان به زیر برنامهی #!/usr/bin/python # -*- coding: utf_8 -*- import os, time #time.sleep(1000) os.chdir('/home/yoosofan/') folder1='articles_backups' l1=os.listdir('/home/yoosofan/') if folder1 not in l1 : os.mkdir(folder1) ''' cd it/ rm -f *~ tar -czf it18.tar it/ bzip2 -kz9 it18.tar ''' str1='a'+str(int(time.time()))+'.tar.gz' os.system('tar -zcf '+folder1+'/'+ str1 + ' it/') l1=os.listdir('/mnt/usofan/') if folder1 not in l1 : os.mkdir('/mnt/usofan/'+folder1) os.system('cp '+folder1+'/'+str1+' /mnt/usofan/' + folder1 + '/'+str1+' -f') os.system('cp '+folder1+'/'+str1+' /mnt/floppy/'+str1+' -f') l1=os.listdir('/mnt/floppy/') if len(l1)>4 : pass منبع کد روی از برنامهها نصب و کامپایل ۳ زیر دستورهای و شد وارد منبع کد آن شاخهی به فرمان خط در باید (source code) منبع کد روی از برنامهها نصب برای نمود اجرا را./configure make حالت به باید نرمافزارها از برخی برای باشد. نیاز بال دستور برای نیز اختصاصی گزینههای برخی است ممکن نرمافزار به بسته نمود. اجرا را su دستور باید حال این به رفتن برای نمود. اجرا را زیر دستور سپس و رفت ( مدیر یا اصلی (کاربر ریشه make install البته ببرید. کار به را آن میتوانید و است شده نصب برنامهی آن از پس نمود. اجرا را su دستور باید حال این به رفتن برای ۱۱ کاشان دانشگاه مهندسی دانشکدهی کامپیوتر گروه عامل سیستم آزمایشگاه گزارش یوسفان احمد

12 ۱ ۲ ۳ ۴ ۵ ۶ ۲ بدون این دستور پایانی نیز برخی از نرمافزارها کار میکنند و نیازی به نصب ندارند و فقط نیاز است که کامپایل انجام شود. دستور passwd برای تغییر رمز کاربر xterm یا دیگر پایانهها و یا Ctrl+F1 تا Ctrl+F4 محیط متنی در اختیار کاربر میگذارد. ۴ دستور کار دستورهای زیر زیر را اجرا نمایید و به کمک راهنمایی گرفتن از خود سیستم کار هر کدام را بنویسید و گزینههای آنها را (در صورت وجود ( توضیح دهید. کوشش کنید بدون نگاه کردن به دستور جلسهی بعد کار این دستورها را بنویسید. ksysguard ps pstree top kill nice احمد یوسفان گزارش آزمایشگاه سیستم عامل گروه کامپیوتر دانشکدهی مهندسی دانشگاه کاشان ۱۲

13 بخش دوم : برنامه نویسی در linux در این بخش به برنامه نویسی در سیستم عامل linux پرداخته میشود. البته بسیار از تابعهایی که در این جا به کار برده میشود در بیشتر سیستمهای برپایهی unix میتواند اجرا شود. ۳ کار با فرآیندها در شکل روبرو شکل کلی یک فرآیند در linux نشان داده شده است.[ Robbins2003 ] و [Gray2003] متغیرهای محیطی argc و argv و آرگومانهای خط فرمان از فرآیند ۶ در زیر شکل درون یک فرآیند کشیده شده است. متن برنامه (کد برنامه) program text دادهی ایستای مقدار دهی اولیه شده initialize static data دادهی ایستای مقداردهی اولیه نشده uninitialized static data هرم heap حافظهی با آدرس کوچکتر low address احمد یوسفان گزارش آزمایشگاه سیستم عامل گروه کامپیوتر دانشکدهی مهندسی دانشگاه کاشان ۱۳

14 ۳ پشته stack آرگومانهای خط فرمان و متغیرهای محیطی حافظهی با آدرس بزرگتر activation records for function calls (return address, parameters, saved registers, automatic variables ) argc, argv, environment variables دقت کنید که در بیشتر سخت افزارهای کنونی حافظه به صورت صفحه بندی شده است بنابراین حالت پیوستهای به شکل روبرو ندارد ولی این از دید برنامههای متداول پنهان است. در حافظهی پشته (stack) فرآیند به صورت پویا اطلعات مربوط به فراخوانی فرآیندها گذاشته میشود. آدرس بازگشت و پارامترها و ثباتهای ذخیره شده و.. هنگام فراخوانی تابعها ذخیره میشود. بخش دادههای مقدار دهی نشده data) (uninitialized با حافظهی پویای فرآیند همراه است. حافظه پویا به کمک malloc یا new گرفته میشود برخی بخش حافظهی پویا را (زیر بخش دادههای مقدار دهی نشده) هرم ( heap ) فرآیند نیز مینامند. ۳ ۱ فرمانها در محیط KDE برای دیدن منابع به کار گرفته شده در سیستم و فهرست فرآیندهای فعال و دیگر اطلعات آنها برنامهی ksysguard را اجرا نمایید. برای دیدن فهرست فرآیندهای فعال در خط فرمان دستورهای زیر را میتوانید به کار ببرید ps فهرست فرآیندهای فعال این کاربر در این خط فرمان( به کمک گزینهها میتوان اطلعات بیشتری به دست آورد) : pstree فهرست کامل فرآیندهای فعال به صورت درختی. : top فهرست فرآیندهای فعال در سیستم به صورت فعال : kill برای از میان برداشتن یک فرآیند شناسهی فرآیند (PID) را پس از این دستور بگذارید. برای نمونه kill 4206 فرآیند با شناسهی ۴۲۰۶ را از سیستم بیرون میاندازد. killall processname برای نابود کردن همهی فرآیندهای با آن نام. nice -n priority command : nice اجرای یک برنامه با اولویت مشخص شده از سوی کاربر. در اینجا priority عدد اولویت است و عددی میان 19- (اولویت بالتر) تا 20 (اولویت پایینتر) است. فقط این بازهی اولویت در دسترس کاربر است command نام برنامهای است که با اولویت priority اجرا میشود. اگر این دستور را بدون command اجرا کنید اولویت پیش فرض برنامهها را نشان میدهد. ۲ برنامهنویسی هر فرآیند یک پدر دارد که آن را بوجود آورده است. هر فرآیند میتواند به کمک تابع fork یک کپی کامل از خود بسازد که همزمان با خود فرآیند اجرا شود. هر دو فرآیند(پدر و فرزند) از همان مکانی که fork فراخوانی شده است کار خود را ادامه میدهند. تابع fork برای فرآیند فرزند عدد ۰ را برمیگرداند و برای فرآیند پدر عدد فرزندی که به تازگی ساخته است را احمد یوسفان گزارش آزمایشگاه سیستم عامل گروه کامپیوتر دانشکدهی مهندسی دانشگاه کاشان ۱۴

15 برمیگرداند. را ۱- مقدار دهد انجام درستی به را خود کار نتواند fork اگر برمیگرداند. میشود. مشخص (gid) گروه شناسهی نام به عدد یک با فرآیند هر گروه و است فرآیند گروه یک به متعلق فرآیند هر ) گروهی شناسهی میسازد. فرآیند گروه یک خودکار طور به عامل سیستم میکند تولید را فرزندی فرآیند یک که هنگامی ی همه برای را علمتهایی میتوان گروه شناسهی کمک به است. یکسان پدر فرآیند شناسهی با میشود ساخته که (gid فرستاد[ Gray2003 ]. kill تابع کمک به گروه اعضای این است. شده اعلن sys/types.h و unistd.h سرآیندهای در آنها نیاز مورد تعریفهای و متغیرها و زیر تابعهای نمیکنند. تغییری و میشوند نوشته شکل همین به نیز ++C زبان در سرآیند پروندههای pid_t getpid(void) pid_t getppid(void) pid_t getpgid( pid_t pid ) برمیگرداند را کنونی فرآیند.شناسهی برمیگرداند. را (parent (والد پدر فرآیند شناسهی این فراخوانندهی فرآیند گروه شود داده صفر pid مقدار اگر فرآیند. گروه شناسهی آن خود درون فرآیند یک گروه آوردن دست به برای بنابراین میشود. برگردانده تابع برگرداند را گروه شناسهی نتواند تابع اگر نیست. آن pid دانستن به نیاز فرآیند میدهد. نشان را خطا نوع errorno درون مقدار و شد خواهد ۱ تابع خروجی این کار چگونگی روبرو برنامهی خروجی میدهد. نشان را تابعها شده داده نشان زیر در برنامه است. /* simple_parent_child_fork.c */ #include <stdio.h> #include <unistd.h> #include <sys/types.h> int main(void) { pid_t childpid; childpid = fork(); if (childpid == -1) { perror("failed to fork"); return 1; if (childpid == 0) / * child code */ printf("i am child %ld\n",(long)getpid()); else{ /* parent code */ printf("i am parent %ld\n",(long)getpid()); printf("gid:%ld\n",(long) getpgid(childpid)); return 0; I am parent 5203 I am child 5204 پدر فرزند فرزندان پدر فرآیند پایان با و نمیماند فرزند فرآیند منتظر پدر فرآیند که میشود دیده بال برنامهی بارهی چندین اجرای با منتظر را آن میتوان فرزند فرآیند در ورودی گرفتن تابع گذاشتن با میتوانید ترتیب همین به رفت. خواهند بین از نیز آن خود و کند تولید فرزند فرآیند چندین پدر فرآیند آن در که نوشت برنامههایی میتواند همچنین دید. را کار این و داشت نگه نتیجه و ببینید درختی صورت به را فرآیندها میتواند ksysguard کمک به ببینید. را نتیجه و بماند ورودی منتظر نیز ۱۵ کاشان دانشگاه مهندسی دانشکدهی کامپیوتر گروه عامل سیستم آزمایشگاه گزارش یوسفان احمد

16 کشتن فرآیند پدر را بررسی نمایید. بنابراین باید فرآیند پدری را که فرزند یا فرزندانی ساخته است در حالت معلق نگه داشت تا فرزند یا فرزندانش به پایان برسد یا به عبارت دیگر به شکلی بتوان فرآیند پدر و فرزند را همگام نمود. تابع زیر فرآیند پدر را تا زمانی که فرزند کارش به پایان نرسیده است مسدود مینماید. pid_t waitpid(pid_t pid, int *status, int options); status وضعیت به پایان رسیدن یا متوقف شدن فرآیند فرزند را نشان میدهد. اگر pid>0 آنگاه pid نشان دهندهی شناسهی فرآیندی است که بناست منتظر آن بماند. اگر pid مقدار ۱- داشته باشد منتظر هر فرآیند فرزندی از خود خواهد شد. اگر مقدار pid برابر صفر باشد منتظر فرآیندی خواهد مانند که شناسهی گروهش برابر شناسهی گروه فرآیند فراخوانندهی این تابع باشد. اگر pid کوچکتر از ۱- باشد آنگاه منتظر هر فرآیند فرزندی خواهد شد که شناسهی گروهش برابر با قدر مطلق pid است. اگر خطایی رخ دهد این تابع مقدار ۱- را برمیگرداند و errno مقدار گذاری میشود. اگر این تابع بتواند کار خود را به درستی انجام دهد شناسهی فرآیند پایان پذیرفته را بر میگرداند. مقدار برگشتی صفر نشان دهندهی این است که فرآیند فراخوانندهی این تابع احتمال فرزندی نداشته است. میتوان این تابع را به شکل زیر فراخوانی نمود و از مقدار متغیر staus نیز صرفنظر کرد. waitpid( -1, &status, 0 ); دقت شود که waitpid فقط منتظر یک فرآیند میماند و اگر چندین فرآیند فرزند وجود داشته باشد باید به تعداد آنها این تابع فراخوانی شود. برنامهی زیر روند کار این تابع را نشان میدهد. #include <iostream> #include <cstdlib> #include <iomanip> #include <unistd.h> #include <sys/types.h> #include <sys/wait.h> using namespace std; int main(){ pid_t pid[3], w ; int status ; for (int i = 1; i < 4; ++i) if ((pid[i-1] = fork( )) == 0){ // generate 3 child processes /* Do any thing in child or run another program with execp*/ int a; a=0; a = a+1; /* A big work */ else cout<< " child forked "<<endl; for (int i=0;(w=waitpid(pid[i], &status, 0)) && w!= -1 ; i++); return 0; به جز تعداد کمی از فرآیندهای سیستمی کاربران (کاربر ریشه یا دیگر کاربران) دیگر فرآیندها را تولید میکنند. هر فرآیند در هنگام ساخته شدن شناسهی کاربر اجرا کننده (UID) و گروه کاربر ) (GID را به عنوان اطلعات فرآیند نگهداری میکند. به کمک این اطلعات سیستم عامل مجوزهای این فرآیند را میتواند برای انجام کارها بررسی نماید و همچنین در احمد یوسفان گزارش آزمایشگاه سیستم عامل گروه کامپیوتر دانشکدهی مهندسی دانشگاه کاشان ۱۶

17 شناسهی نامهای به دیگر شمارهی دو سیستم در فرآیند هر نماید. ثبت را کاربر وسیلهی به شده انجام کارهای نیاز صورت در که هستند اضافی مجوزهای برای دو این دارد. همراه به را (EGID ) مؤثر گروه شناسهی و (EUID) مؤثر کاربری کاربری شناسهی id دستور دهد. انجام را خاصی کارهای یا کار بتواند فرآیند آن تا میشود داده فرآیندی به خاص حالتهای برمیگردانند. آنها فراخوانندهی فرآیند هر برای را شمارهها این زیر تابعهای میدهد. نشان را کاربر گروه شناسهی و uid_t getuid(void); uid_t geteuid(void); gid_t getgid(void); gid_t getegid(void); /* nice_function.cpp */ #include <iostream> #include <unistd.h> #include <sys/resource.h> using namespace std; int main(){ int i; cout<<"current priority is " <<getpriority(prio_process,0)<<endl; for(i=1;i<14;i++) if(nice(i)<0) break; cout<<"priority after increment " <<getpriority(prio_process,0)<<endl; for(i=-1;i>-5;i--) if(nice(i)<0) break; cout<<"priority after decrement " <<getpriority(prio_process,0)<<endl; return 0; int nice (int i){ int result; result=setpriority(prio_process,0,i); if (result!= -1) else return -1; return result; است. شده نوشته فرآیند اولویت تغییر برای روبرو برنامهی زمانی با هستید معمولی کاربر که زمانی برای اجرا نتیجهی شوید مدیر اینکه برای است. متفاوت هستید مدیر که کنید. اجرا فرمان خط در را su فرمان معمولی کاربر برای اجرا نتیجهی [yoosofan@usofan programs]$./a.out current priority is 0 priority after increment 13 priority after decrement 13 priority after decrement 13 وارد به نیازی knoppix در (البته مدیر برای اجرا نتیجهی نیست.) عبور کلمهی کردن [yoosofan@usofan programs]$ su Password: [root@usofan programs]#./a.out current priority is 0 priority after increment 13 priority after decrement -4 میفرستد. pid گروه فرآیندهای برای یا pid فرآیند برای را signum علمت تابع این int kill (pid_t pid, int signum) شناسه این با فرآیندی : pid > 0 فرآیند این با گروه هم فرآیندهای : pid == 0 pid شناسه با فرآیندها گروه : pid < 0 pid == -1 فرآیندهای از برخی جز به فرآیندها همهی به باشد داشته را همه به علمت فرستادن مجوز فرآیند اگر ۹ میشود[ gnu-libc ]. فرستاده کاربر همان به مربوط فرآیندهای همهی به علمت وگرنه میشود فرستاده علمت سیستمی است. فرآیند یک کشتن برای علمتی (signum) int SIGUSR1 int SIGUSR2 The SIGUSR1 and SIGUSR2 signals are set aside for you to use any way you want. They're useful ۱۷ کاشان دانشگاه مهندسی دانشکدهی کامپیوتر گروه عامل سیستم آزمایشگاه گزارش یوسفان احمد

18 for simple interprocess communication, if you write a signal handler for them in the program that receives the signal. There is an example showing the use of SIGUSR1 and SIGUSR2 in Signaling Another Process. The default action is to terminate the process. (unsigned int sleep (unsigned int seconds فرآیند به خواب میرود تا اینکه seconds ثانیه بگذرد و یا اینکه یک علمت (signal) به فرآیند برسد هر کدام که پیش آمد برنامه به کار خود ادامه میدهد. اگر زمان به پایان رسیده باشد مقدار صفر را بر میگرداند و گرنه مدت زمانی را که باقی مانده است برمیگرداند. اگر مقدار ۱- را برگرداند خطایی رخ داده است. دستور کار ۱ برنامهای بنویسید که یک درون یک فرآیند پدر یک آرایهی دو بعدی تعریف کند و فرزندانی به وجود آورد و هر کدام از فرزندها یکی از درایهها را جمع کند. ۲ تابعهای زیر چه کاری انجام میدهند آنها را به همراه تفاوتشان توضیح دهید. همچنین تابع system را به کمک این تابعها شبیه سازی کنید. ۳ خروجی تکه کد روبرو را بنویسید و آن را توضیح دهید. سپس برنامهای بنویسید که درون یک حلقه در حال ساخت فرزند است. تعداد فرزندان برنامهی نوشته شده چند خواهد بود چگونه میتوان آن را کاهش داد برنامه را به گونهای تغییر دهید که شمارهی گروه فرزندان را چاپ نماید. ۴ برنامهی روبرو به زبان c است آن را کامپایل کرده و با مقدار متفاوت خط فرمان آن را آزمایش نمایید. execl ( pathname, arg0, arg1,..., NULL ); execlp ( filename, arg0, arg1,..., NULL ); execle ( pathname, arg0, arg1,..., NULL, envp ); execv ( pathname, argv ); execvp ( filename, argv ); #include <iostream> #include <sys/types.h> #include <unistd.h> using namespace std; int main(){ fork( ); cout << "hee " << endl; fork( ); fork( ); return 0; #include <stdio.h> #include <stdlib.h> #include <unistd.h> cout << "ha " << endl; cout << "ho " << endl; int main (int argc, char *argv[]) { pid_t childpid = 0; int i, n; if (argc!= 2){ /* check for valid number of command-line arguments */ fprintf(stderr, "Usage: %s processes\n", argv[0]); return 1; الف_ عدد n تا چه مقداری میتواند باشد fprintf بگذارید اکنون ب_ تابع ) sleep(10 را پیش از تابع حداکثر چند فرآیند ایجاد میشود حداقل چند فرآیند دلیل این رفتار چیست ج_ تابع fprintf را درون حلقهای که k بار اجرا میشود بگذارید و تابع ) sleep(m را پس از fprintf درون حلقه بگذارید. اکنون k اجرا کنید و به m و برنامه را با مقدارهای متفاوت n و پرسشهای بخش «ب» پاسخ دهید. احمد یوسفان گزارش آزمایشگاه سیستم عامل گروه کامپیوتر دانشکدهی مهندسی دانشگاه کاشان ۱۸

19 n = atoi(argv[1]); for (i = 1; i < n; i++) if (childpid = fork()) break; fprintf(stderr, "i:%d process ID:%ld parent ID:%ld child ID: %ld\n", i, (long)getpid(), (long)getppid(), (long)childpid); return 0; د_ fprintf درون برنامه را با چهار printf که فقط یک عدد صحیح چاپ میکنند جایگزین نمایید و فقط در printf آخری n\ بگذارید و برنامه را اجرا کنید. اکنون به خروجی دقت کنید. مقدارهای چاپ شده مربوط به کدام فرآیند است ه_ اکنون برنامه را تغییر داده تا کارکترهایی به تعداد مشخص خوانده و درون رشتهای (با 0\ در پایان آن) بگذارد و سپس چاپ نماید. رفتار برنامه را دنبال کنید. int nanosleep (const struct timespec *requested_time, struct timespec *remaining) ۵ تابع روبرو چه کاری انجام میدهد ۶ در فضای n بعدی فاصلهی اقلیدسی دو نقطه به کمک رابطهی n i=1 x i y i 2 محاسبه میشود. فاصلههای دیگری نیز به همین شکل میتوان تعریف کرد که جذر m ا م هستند. رابطهی کلی این شکل محاسبهی فاصلهها به کمک معادلهی n i=1 m x i y i m نشان داده شده است. برنامهای بنویسید که با خواندن دو نقطهی n بعدی از یک پرونده رابطهی روبرو را به ازای 2=m تا یک عدد که کاربر وارد میکند محاسبه کند. برنامه را به گونهای تغییر دهید که به ازای هر رابطه (برحسب m) یک فرآیند ساخته شود که فاصله را برای آن m به دست آورد و نتیجه را نشان دهد. احمد یوسفان گزارش آزمایشگاه سیستم عامل گروه کامپیوتر دانشکدهی مهندسی دانشگاه کاشان ۱۹

20 ۴ کار با پروندهها و شاخهها در سیستمهای عامل unix همهی پروندهها و شاخهها دارای مجوز دسترسی هستند. اگر فرمان ls l- را را در خط فرمان وارد کنید برای هر پرونده و شاخه بخشی برای نشان دادن سطح دسترسی گذاشته شده است. یک پرونده سه نوع مجوز دارد الف_ مجوز خواندن ب_ مجوز نوشتن ج_ مجوز اجرا کردن. همچنین سه دستهی کاربر مالک پرونده و گروه کاربر مالک و دیگران وجود دارد. میتوان به هر کدام از این دستهها مجوزهایی را برای یک پرونده داد از آن گرفت. در شکل زیر فهرستی از پروندهها همراه با اطلعات کامل پروندهها نشان داده شده است. در سمت چپ هر پرونده مجوزهای پرونده گذاشته شده است. برای تغییر دادن مجوزها فرمان chmod را میتوان به کار برد. میتوان به کمک عددها سطح دسترسیها را مشخص نمود. احمد یوسفان گزارش آزمایشگاه سیستم عامل گروه کامپیوتر دانشکدهی مهندسی دانشگاه کاشان ۲۰

21 ۴ chomd 751 f1.txt -rwxr-x--x f1.txt که صورتی کند(در اجرا را آن هم و بخواند هم و بنویسد پرونده در هم میتواند پرونده مالک کاربر میتوانند دارند قرار پرونده مالک کاربر گروه در که کاربرانی میشود). اجرا باشد اجرایی پرونده و او گروه و مالک جز به دیگران(همه دهند. تغییر را آن نمیتوانند ولی کنند اجرا و بخوانند را پرونده دارند. را پرونده کردن اجرا اجازه فقط مدیر) البته نشان را کاربران همهی a دیگران o مالک کاربر گروه g مالک کاربر u گرفت. کمک نمادهایی از عددها جای به میتوان گرفت. را دسترسیهایی - با و کرد جایگزین را دسترسیها = با و افزود را دسترسیهایی + کمک به میتوان میدهد. توضیح میشود. داده مالک کاربر گروه به پرونده روی بر نوشتن اجازهی میشود. داده کاربران دیگر به پرونده خواندن اجازه نمیکند تغییر دسترسیها دیگر ولی میشود گرفته مالک کاربر از نوشتن اجازهی داشت. خواهند را پرونده کردن اجرا اجازهی فقط همه پرونده بر دستور اثر -rwxrwx--x f1.txt -rwxrwxr-x f1.txt -r-xrwxr-x f1.txt ---x--x--x f1.txt دستور chomd g+w f1.txt chmod o+r f1.txt chmod u-w f1.txt chmod a=x f1.txt برنامهنویسی ۱ تابع پرونده شدن باز از پس که کنید دقت میشود. گرفته کار به مستقیم صورت به پروندهها با کردن کار برای زیر تابعهای نآ کمک به و است سیستم در شده باز پروندهی شماره دهندهی نشان که برمیگرداند صفر از بزرگتر را عددی open این و است خطا دهندهی نشان برگردانند را ۰ از کوچکتر عددی اگر تابعها این از کدام هر کرد. کار پرونده روی بر میتوان [gnu-libc] است. شده تعریف سرآیند پروندههای در که میدهد نشان را خطا شمارهی منفی عدد int fd= open( "filename", open_mode [, permissions ] ); open_mode= _RDONLY, O_WRONLY, O_RDWR bitwise OR O_APPEND, O_CREAT, O_EXCL, O_NONBLOCK, O_TRUNC سطح و ویژه( mode ) حالت در پرونده یک کردن باز ( دسترسی( permission با میتوان آن کمک به که است پرونده برای شناسهای :fd با را حالت )چند ) کمک به کرد. کار برنامه در پرونده این میشود. ترکیب هم نمایید. بررسی fcntl.h فایل درون آنها میتوانید که دارد وجود POSIX استاندارد در دیگری مقدارهای O_APPEND میکند. پاک را فایل دیگر عبارت به و میرساند صفر به را نوشتن برای شده باز فایل طول O_TRUNC باشد نداشته وجود فایلی اگر یابد. ادامه فایل پایان از نوشتن عمل و رفته آن پایان به فایل نشانگر میشود باعث نمایید. مشخص را (permission ) فایل مجوز حتما باید بگذارید تابع درون را گزینه این اگر میسازد. را آن O_CREAT O_NONBLOCK ببرید. کار به را O_CREAT O_EXCL ترکیب باید دارد وجود که فایلی روی نشدن نوشته برای میگذارد. اثر write و read تابعهای رفتار روی بر یا فایل از خواندن یا فایل روی نوشتن برای میتوان آن از که میگرداند بر را مثبتی عدد کند باز را فایل بتواند تابع این اگر ۲۱ کاشان دانشگاه مهندسی دانشکدهی کامپیوتر گروه عامل سیستم آزمایشگاه گزارش یوسفان احمد

22 نوع به توجه با errno سراسری متغیر و برمیگرداند را ۱- مقدار کند باز را فایل نتواند تابع این اگر گرفت. کمک کارها دیگر میشود. گذاری مقدار خطا ssize_t read(int fd, void *buf, size_t nbyte) ssize_t write(int fd, const void *buf, size_t nbyte) int lseek( fd, nbyte, whence ); int mkdir( "filename", dir_mode) int chdir(char *path_name) (int close(int fd fd شناسهی با پروندهی بستن اندازهی به buf میانگیر در ریختن و fd شناسه با پرونده از خواندن nbyte nbyte اندازهی به buf میانگیر از fd شناسه با پرونده در نوشتن را پرونده نمای مکان whence از nbyte اندازهی به fd درپروندهی میدهد حرکت است شده خوانده بایت تعداد برگشتی مقدار است شده نوشته بایت تعداد برگشتی مقدار whence: SEEK_SET, SEEK_CUR, SEEK_END میسازد dir_mode دسترسیهای با "filename" نام به شاخهای میدهد تغییر "path_name" به را کنونی شاخهی char * getcwd(char *buf,int size) path_alloc(&size); size اندازهی حداکثر به path میانگیر در را کنونی شاخهی مسیر حافظهی شود گذاشته NULL مقدار path جای به اگر میریزد. برگردانده آن آدرس و میشود گرفته size اندازهی به پویایی است. شده path2 = getcwd(null, MAXPATHLEN+1); مسیر که حافظه از مکانی به اشارهگر برگشتی مقدار است. شده کپی آن در سیستم گذاشته MAXPATHLEN در path اندازهی بیشنهی میشود. میگیرد. حافظه از را میانگیر یک size اندازهی به int chmod (const char *filename, mode_t mode) rc = chmod("/home/knoppix/text1.txt", 0444); اگر و میگرداند بر را صفر مقدار تابع این شد ویرایش مجوز اگر برمیگرداند. را ۱- مقدار دهد انجام درست را خود کار نتواند int fchmod (int fd, int mode) int access (const char *filename, int how) errno.h باز شاخهی یا پرونده یک روی بر ولی است chmod همانند میدهد. انجام را تنظیمها Function The access function checks to see whether the file named by filename can be accessed in the way specified by the how argument. The how argument either can be the bitwise OR of the flags R_OK, W_OK, X_OK, or the existence test F_OK. شدهاند. تعریف POSIX در زیر سرآیند پروندههای در تابعها این sys/stat.h fcntl.h unistd.h فرآیندها میان ارتباط برای راهکاری عنوان به پروندهها کردن قفل کار دستور ۲ ۴ آن دنبال به باشند مجبور و کنند کار fstat و stat تابع با و باشند داشته نیاز stat ساختار به که بخواهیم آنها از برنامهای ۱ بروند. پرونده یک برای گروه و کاربری نام تغییر ۲ ۲۲ کاشان دانشگاه مهندسی دانشکدهی کامپیوتر گروه عامل سیستم آزمایشگاه گزارش یوسفان احمد

23 پرونده روی بتواند فرآیند یک فقط و باشند پرونده آن خواندن حال در فرآیند چند که پروندهها به همزمان دسترسی ۳ بنویسد. linux در لولهها : سوم بخش هدش محدود لولهها اندازهی سیستمها بیشتر در است. محدود آنها اندازهی که گرفت نظر در پروندههایی میتوان را لولهها یافته اختصاص بایتها کل تعداد است (PAGE_SIZE برابر (که PIPE_SIZE ثابت مقدار لینوکس عامل سیستم در است. بلک اندازهی مقدار است) <limits,h> در که <linux/limits.h> در ) PIPE_BUF ثابت میکند. مشخص را لوله یک به در فرآیند یک کلی طور به است. ۴۰۹۶ اغلب اندازه این مینماید. مشخص را (atomic write) ناپذیر تجزیه نوشتن برای لولهها گرچه میکند. نگهداری را خواندن و نوشتن آخرین مکان سیستم میخواند. آن از دیگری فرآیند و مینویسد لوله آنها در seek انجام امکان و نمیشود تعریف آنها به واقعی اشارهگر و نمیشوند ایجاد واقع در ولی هستند پروندهها شبیه است. شده داده نشان لوله با کار زیر شکل در که همانگونه ندارد. وجود فرآیند اگر فرض پیش طور به دارد. برعهده را نویسنده و خواننده فرآیندهای میان سازی همگام وظیفهی عامل سیستم میشود. مسدود شود یافت نوشتن برای لوله در خالی جای که زمانی تا فرآیند این بنویسد پر لولهی یک در بخواهد نویسنده شود نوشته لوله در چیزی که زمانی تا بنویسد چیزی است خالی که لولهای در بخواهد خواننده فرآیند اگر ترتیب همین به وجود لوله آن در نوشتن برای فرآیندی هیچ هنوز که کند باز خواندن برای را لولهای فرآیندی اگر همچنین میشود. مسدود میشود. مسدود خواننده فرآیند آنگاه ندارد است: زیر صورت به نوشتن دستور شدهاند. گذاشته <unistd.h> سرآیند پروندهی در لوله در خواندن و نوشتن دستورهای ssize_t write(int fd, const void *buf, size_t count) زا بایت count تعداد میکنند کوشش نوشتن دستور که میشود برده کار به (لولهای) پرونده کننده توصیف عنوان به fd را ۱- مقدار نشود موفق اگر و بود خواهد است نوشته که بایتی تعداد بازگشتی مقدار شود موفق اگر بنویسد. آن در را buf که تفاوت این با است پرونده در نوشتن همانند لوله در نوشتن برمیگرداند. میشوند. نوشته لوله پایان در دادهها همواره الف در دیگری نوشتن درخواست با PIPE_BUF مساوی یا کوچکتر طول با نوشتن درخواستهای که میشود تضمین ب نمیشوند. همزمان و نمیکنند پیدا تداخل لوله همان باشد نکرده آمادگی اعلم لوله آن در نوشتن برای فرآیندی هیچ که شود انجام لولهای روی بر بخواهد نوشتن اگر ج مییابد. پایان فرض پیش طور به است کرده را خواننده بدون لولهی این در نوشتن درخواست که فرآیندی : است زیر صورت به خواندن دستور ssize_t read(int fd, void * buf, size_t count ); ۲۳ کاشان دانشگاه مهندسی دانشکدهی کامپیوتر گروه عامل سیستم آزمایشگاه گزارش یوسفان احمد

24 ۵ تعداد تابع این شود انجام موفقیت با خواندن عمل اگر میگذارد. buf در و میخواند لوله از را بایت count تعداد تابع این برمیگرداند. را ۱- مقدار گرنه و برمیگرداند را شده خوانده بایت : تفاوتها این با است پرونده از خواندن همانند لوله از خواندن عمل نیست. شدنی پیگرد عمل و میشود انجام کنونی مکان از خواندنها همهی الف اعلم لوله آن در نوشتن برای دیگری فرآیند که حالی در شود انجام خالی لولهی روی بر بخواهد خواندن عمل اگر ب برمیگرداند. را ۰ یا ۱- مقدار دیگری عوامل به بسته خواندن تابع است کرده آمادگی خواندن تابع آنگاه باشد نشده باز نوشتن برای دیگری فرآیند هیچ وسیلهی به است شده باز خواندن برای که لولهای اگر ج برمیگرداند. را ۰ مقدار میگیرند. قرار نام با و نام بدون دستهی دو در لولهها نام بدون لولههای ۵ میشود. فراخوانی زیر سیستمی تابع بدون لولهی یک ساخت برای int pipe(int filedes[2]); پرونده توصیفگر عنوان به را filedes[1] و filedes[0] زوج و برمیگرداند را صفر مقدار شود انجام درستی به تابع این اگر طرفه دو ارتباط به نیاز اگر میکنند. حرکت سو یک از فقط دادهها و هستند طرفه یک لولهها سنتی طور به برمیگرداند. برای که دارد اشاره (مجازی) پروندهای به filedes[0] نوشتن. برای دیگری و خواندن برای یکی میشود باز لوله دو باید باشد این unix نسخههای اغلب و است. شده باز نوشتن برای که دارد اشاره پروندهای به filedes[1] است شده باز خواندن برای هم و خواندن برای هم و هستند طرفه دو صورت به لولهها که Solaris همچون نسخهها از برخی جز دارند را وضعیت برمیگرداند. را ۱- مقدار بسازد را لولهای نتواند pipe تابع اگر میشوند. باز نوشتن نمونه برنامهی ۱ میآورد. وجود به فرزند و پدر فرایندهای میان ارتباطی نام بدون لولههای کمک به که است شده نوشته برنامهای زیر در 1) #include <iostream> 2) #include <cstdio> 3) #include <unistd.h> 4) #include <string.h> 5) using namespace std; 6) int main(){ 7) int f_des[2]; 8) static char message[bufsiz]; 9) char writemessage[2000]= "check write and test pipes "; 10) int ret_val = 0; ۲۴ کاشان دانشگاه مهندسی دانشکدهی کامپیوتر گروه عامل سیستم آزمایشگاه گزارش یوسفان احمد

25 11) if(pipe(f_des) == -1){ 12) perror("pipe"); ret_val =2; 13) else switch(fork()){ 14) case -1: 15) perror("fork"); ret_val=3; break; 16) case 0: 17) close(f_des[1]); 18) if(read(f_des[0],message, BUFSIZ)!= -1){ 19) cout<< "Message recieved by child: [" 20) << message << "]" << endl; 21) cout.flush(); 22) else {perror("read error"); ret_val = 4; 23) break; 24) default: // In the Parent 25) close(f_des[0]); 26) cout<<"enter your message : " ;cout.flush(); 27) cin.getline(writemessage,bufsiz - 1); 28) if(write(f_des[1], writemessage, strlen(writemessage))){ 29) cout<<"message sent by parent : [" 30) <<writemessage<<"]"<<endl; 31) cout.flush(); 32) else {perror("write"); ret_val=5; 33) break; 34) 35) return ret_val; 36) و ۲۵) (خط ببندد را خواندن پروندهی بنویسد لوله در میخواهد فقط که پدر فرآیند است بهتر میشود دیده که همانطور ۱۷) (خط ببندد را نوشتن پروندهی دارد خواندن به نیاز فقط که فرزند فرآیند نمونههای میشود برده کار به نماد استاندارد صورت به برنامهها میان ارتباط برای لولهها کارگیری به برای فرمان خط در میدهد. نشان را فرمان خط در لولهها کاربرد چگونگی زیر ps ef grep $USER cat -n برای کمک به فرمان این خروجی میدهد. نشان آنها کامل اطلعات به همراه کاربر همهی فرآیندهای همهی ps -ef فرمان کنونی) (کاربر %USER آنها در که برمیگزیند را ps فرمان از خطوطی فقط دستور این میفرستد grep %USER دستور ۲۵ کاشان دانشگاه مهندسی دانشکدهی کامپیوتر گروه عامل سیستم آزمایشگاه گزارش یوسفان احمد

26 ۵ گذاری شماره را خروجی خطهای که میشود فرستاده cat n- فرمان برای فرمان این خروجی سپس باشد. داشته وجود میکند ls -al less کار دستور ۲ بنویسید. را آنها کار از نمونهای و دهید توضیح میدهند انجام کارهایی چه dup2 و dup تابعهای ۱ بنویسید. لولههای کمک به را کننده مصرف و کننده تولید برنامهی ۲ نام با لولههای ۶ unix خانوادهی عاملهای سیستم خوانده نیز FIFO نام به که میکنند فراهم را نام با لولههای نام به لولهها از دیگری نوع مان با لولهی یک که هنگامی دارد. نیز دیگری سودمندیهای ولی هستند نام بدون لولههای همانند نام با لولههای میشوند. اب راه این از میتواند دیگر فرآیند یک ترتیب این به میآید وجود به پرونده سامانهی در شاخه ورودی یک میشود ساخته روی بر واقعی صورت به ولی هستند عامل سیستم پروندهی سامانهی در شاخه یک نام با لولههای گرچه کند. کار لوله این در آنها اطلعات و ساختار فقط و نمیشوند نگهداری دیسک میشود ساخته p نام به لوله یک زیر دستور کمک به فرمان خط در میشود. نگهداری عامل سیستم هستهی mknod PIPE p و باشد عامل سیستم در معتبر نام هر میتواند و میشود داده لوله به که است نامی (PIPE) دستور این نخست آرگومان نام این شود وارد زیر دستور اگر و شود. ساخته پرونده سامانهی روی نباید شاخه این که میکند مشخص (p) دوم آرگومان میشود. دیده کنونی شاخهی در که است معنای به شاخه ای مجوزهای آغاز در p ls -l PIPE prw-r--r-- 1 ahmad ahmad :59 PIPE تعداد میشود دیده که همانگونه است. (FIFO ) لوله نوع از PIPE هب را فرمان خط دستورهای خروجیهای میتوان تاریخ). از پیش و دوم ahmad از (پس است صفر لوله این درون بایتهای آن شدن متوقف از تا باشد زمینهی پس در باید شود فرستاده لوله به خروجیاش بناست که دستوری فرستاد. لوله این فرستاد. دیگر فرمان یک به را لوله یک خروجی میتوان شود. جلوگیری cat pipe_buff_limit.cpp > PIPE & [1] میخواند لوله از را دادهها از زیر دستور cat < PIPE #include <limits.h> #include <iostream> ۲۶ کاشان دانشگاه مهندسی دانشکدهی کامپیوتر گروه عامل سیستم آزمایشگاه گزارش یوسفان احمد

27 ۶ using namespace std; int main(){ cout<< PIPE_BUF << endl; return 0; [1]+ Done cat pipe_buff_limit.cpp > PIPE > و <sys/types.h > سرآیند پروندههای و دارد وجود نام با لولهی ساخت برای mknod تابع نیز نویسی برنامه در است زیر شکل به تابع این اعلن شوند گذاشته برنامه آغاز در باید <unistd.h> و <fcntl.h> و <sys/stat.h int mknod( const char * pathname, mode_t mode, dev_t dev ) ) «یا» هم با که است پرونده نوع همراه به پرونده دسترسی مجوزهای mode و است مسیر همراه به لوله نام pathname شوند. گرفته کار به میتوانند تابع این در پرونده نوع عنوان به زیر ثابتهای میشوند. (OR FIFO special S_IFIFO character special S_IFCHR directory S_IFDIR block special S_IFBLK ordinary file S_IFREG و برمیگرداند را ۱- مقدار بسازد را لوله نتواند تابع این اگر شود. گذاشته صفر باید dev آرگومان مقدار لوله یک ساختن برای میدهد. نشان را خطا پیام perror تابع میشود. گذاشته errno سراسری متغیر در خطا دقیق نوع شود. گذاشته برنامه آغاز در باید <sys/stat.h> و <sys/types.h> سرآیند پروندههای و است. سادهتر mkfifo تابع int mkfifo( const char * pathname, mode_t mode) mode برای تابع این در ندارد. وجود پرونده نوع به نیاز مشتری - کارگزار برنامهی ۱ و کارگزار فرآیند دو هر که فرض این با گرفت کمک میتوان نام با لولهی از مشتری - کارگزار برنامههای یک نوشتن برای اجرا مشتری فرآیندهای سپس میشود اجرا زمینه پس در کارگزار فرآیند یک آغاز در شوند. اجرا سکو یک در مشتری پردازش برای کارگزار برای عمومی لولهی یک راه از و میکنند دریافت را دستورهایی کاربر از مشتری فرآیندهای میشوند. یک راه از کارگزار مینماید. اجرا popen pclose کمک به را آن نمود دریافت را دستور کارگزار که هنگامی میفرستند. نشان کار این انجام چگونگی زیر شکل در دهد. نمایش را آن مشتری تا میفرستد مشتری برای را خروجی خصوصی لولهی ۲۷ کاشان دانشگاه مهندسی دانشکدهی کامپیوتر گروه عامل سیستم آزمایشگاه گزارش یوسفان احمد

28 ۵ ۶ داده شده است. به طور دقیقتر کارهای زیر انجام میشود. ۱ کارگزار یک لولهی با نام عمومی میسازد. ۲ هر مشتری لولهی خصوصی خود را میسازد ۳ مشتری از کاربر فرمانی را درخواست میکند و آن را دریافت میکند ۴ هر مشتری نام لولهی خصوصی خود را به همراه دستور گرفته شده از کاربر در لولهی عمومی مینویسد. کارگزار لولهی عمومی را میخواند و نام لولهی خصوصی مشتری را به همراه دستور کاربر میخواند. کارگزار به کمک دنبالهی popen pclose میفرستد. دستور کاربر را اجرا میکند و خروجی دستور کاربر را برای مشتری ۷ مشتری خروجی را چاپ میکند. برای اطمینان از این که کارگزار و مشتری نام یکسانی را برای لوله به کار میبرند پروندهی سرآیند زیر در آغاز هر کدام گذاشته میشود. 1) /* my_local.h local header file for pipe client-server*/ 2) #include <cstdio> 3) #include <sys/types.h> 4) #include <sys/stat.h> 5) #include <fcntl.h> 6) #include <unistd.h> 7) #include <string.h> 8) #include <linux/limits.h> احمد یوسفان گزارش آزمایشگاه سیستم عامل گروه کامپیوتر دانشکدهی مهندسی دانشگاه کاشان ۲۸

29 ۶ 9) #include <stdlib.h> 10)using namespace std; 11)const char *PUBLIC = "/tmp/public"; 12)const int B_SIZ = (PIPE_BUF / 2); 13)struct message { 14) char fifo_name[b_siz]; 15) char cmd_line[b_siz]; 16); ۱ ۱ برنامهی مشتری 1) /* client.cpp The client process */ 2) #define _GNU_SOURCE 3) #include "named_pipe_local.h" 4) int main(){ 5) int n, privatefifo, publicfifo; 6) static char buffer[pipe_buf]; 7) struct message msg; 8) sprintf(msg.fifo_name, "/tmp/fifo%d", getpid( )); 9) if (mknod(msg.fifo_name, S_IFIFO 0666, 0) < 0) 10) { perror(msg.fifo_name); return 1; 11) if ((publicfifo = open(public, O_WRONLY)) == -1) 12) { perror(public); return 2; 13) while ( 1 ) { 14) write(fileno(stdout), "\ncmd>", 6); 15) memset(msg.cmd_line, 0x0, B_SIZ); 16) n = read(fileno(stdin), msg.cmd_line, B_SIZ); 17) if (!strncmp("quit",msg.cmd_line,n-1)) 18) break; 19) write(publicfifo, (char *) &msg, sizeof(msg)); 20) if ((privatefifo = open(msg.fifo_name, O_RDONLY)) == -1) احمد یوسفان گزارش آزمایشگاه سیستم عامل گروه کامپیوتر دانشکدهی مهندسی دانشگاه کاشان ۲۹

30 21) {perror(msg.fifo_name); return 3; 22) while ((n = read(privatefifo, buffer, PIPE_BUF)) > 0) 23) {write(fileno(stderr), buffer, n); 24) close(privatefifo); 25) 26) close(publicfifo); 27) unlink(msg.fifo_name); 28) return 0; 29) در خط sprintf ۸ و شمارهی فرآیند (از (getpid به کار گرفته شده است تا یک نام یکتا برای لولهی خصوصی فرآیند مشتری به دست آید. اگر پیش از اجرای کارگزار مشتری اجرا شود در خط ۱۱ لولهی عمومی را مشتری نمیتواند باز کند بنابراین پیام خطا را میدهد و از برنامه بیرون میآید. در خط ۱۵ تابع memset برای صفر کردن NULL) کردن) رشته به کار گرفته شده است تا کاراکتر ناخواستهای در رشته باقی نماند و مشکلی به وجود نیاورد. اگر کاربر quit را وارد کند مشتری پایان میپذیرد. برای اینکه میانگیرهای ورودی و خروجی هر بار خالی شوند تابعهای read/write به کار گرفته شده است. ۶ ۲ ۲ برنامهی کارگزار برنامهی کارگزار در زیر نوشته شده است. 1) /* named_pipe_server.cpp The server process */ 2) #define _GNU_SOURCE 3) #include "named_pipe_local.h" 4) int main(){ 5) int n, done, dummyfifo, publicfifo, privatefifo; 6) struct message msg; 7) FILE *fin; 8) static char buffer[pipe_buf]; 9) mknod(public, S_IFIFO 0666, 0); 10) if ((publicfifo = open(public, O_RDONLY)) == -1 11) (dummyfifo= open(public, O_WRONLY O_NDELAY))==-1 ) 12) { perror(public); return 1; احمد یوسفان گزارش آزمایشگاه سیستم عامل گروه کامپیوتر دانشکدهی مهندسی دانشگاه کاشان ۳۰

31 13) while (read(publicfifo,(char *) &msg, sizeof(msg)) >0){ 14) n = done = 0; 15) do { 16) if ((privatefifo=open(msg.fifo_name, O_WRONLY O_NDELAY)) == -1) 17) sleep(3); 18) else { 19) fin = popen(msg.cmd_line, "r"); 20) write(privatefifo, "\n", 1); 21) while ((n = read(fileno(fin), buffer,pipe_buf))>0){ 22) write(privatefifo, buffer, n); 23) memset(buffer, 0x0, PIPE_BUF); 24) 25) pclose(fin); 26) close(privatefifo); 27) done = 1; 28) 29) while (++n < 5 &&!done); 30) if (!done) { 31) write(fileno(stderr), 32) "\nnote: SERVER ** NEVER ** accessed private FIFO\n", 33) 48); 34) return 2; 35) 36) 37) return 0; 38) کارگزار برای خواندن از لولهی خصوصی هر فرآیند (خطهای ۱۵ تا ۲۹) یک حلقه را به کار میبرد و در خط ۱۶ برای باز احمد یوسفان گزارش آزمایشگاه سیستم عامل گروه کامپیوتر دانشکدهی مهندسی دانشگاه کاشان ۳۱

32 ۶ کردن لوله O_NDELAY را به کار میبرد تا اگر نتوانست باز کند منتظر نماند. به این ترتیب احتمال به وجود آمدن بن بست نخواست بود زیرا اگر این روش به کار گرفته نمیشد ممکن بود کارگزار نتواند لوله را باز کند و مسدود شود و مشتریها بخواهند با کارگزار کار کنند و آنها نیز مسدود شوند زیرا همان مشتری مزبور نیز باز لولهی خصوصی خود را میخواهد و اگر بتواند آن را باز کند بن بست پیش میآید. دقت شود که چون کارگزار در پس زمینه اجرا میشود باید به کمک دستور زیر در یکی از خط فرمانها آن را به پایان رسانید. Pid شمارهی فرآیند کارگزار است که باید به جای آن عددش را بگذارید kill -9 Pid ۳ دستور کار ۱ برنامهی کارگزار مشتری را به شکلی بازنویسی کنید که هر بار کارگزار برای اجرای یک دستور یک فرآیند جدید بسازد و اجرای آن را به عهدهی آن فرآیند جدید بگذارد و پاسخ را دریافت نموده برای مشتری بفرستد. ۲ آیا میتوان برنامهی کارگزار مشتری را به شکلی تغییر داد که در آن کارگزار دستورهایی برای مشتریها بفرستد و آنها کارهای کارگزار را انجام دهند ۳ کارهای خواسته شده در گزارش کار سوم را این بار به کمک لولهها و به شکل موازی واقعی انجام دهید. احمد یوسفان گزارش آزمایشگاه سیستم عامل گروه کامپیوتر دانشکدهی مهندسی دانشگاه کاشان ۳۲

33 پیام صفهای : سوم بخش میشود. داده توضیح پیام صفهای نام به لینوکس در فرآیندها میان ارتباط برای دیگری راهکار بخش این در و signal راهکارهای و نمایند فراهم را بیشتری امکانات باید فرآیندهای میان ارتباط برای که فهمیدند این به unix طراحان زیر قرار به امکانات این از دسته سه نمودند. فراهم unix برای را بیشتری انعطاف با امکانات بنابراین دارند. محدودیت لوله مشترک. حافظهی و راهنماها پیام صفهای هستند: مالک سازنده ipc منبع هر شود. ساخته کارگیری به از پیش باید پروندهها همانند (IPC) فرآیندها میان ارتباط منبع یک سیستم مناسب فراخوانیهای با میتوانند و میآیند وجود به منبع ساخت هنگام در ویژگیها این دارد. دسترسی مجوزهای و میدهد. دست به فرآیندها میان ارتباط کنونی امکانات دربارهی اطلعاتی سیستم سطح در ipcs دستور شوند. ویرایش ipcs حافظهی برای m- یا پیام صفهای دادن نشان برای q- یا راهنماها فقط دادن نشان برای s- همراه به میتواند دستور این دادن نشان برای است. دستور این فرض پیش که میرود کار به منبعها همهی دادن نشان برای a- رود کار به مشترک ار دستور این دیگر امکانات میشود. گذاشته دستور کنار در منبع آن شمارهی همراه به i- منبع یک دربارهی بیشتر اطلعات نمایید بررسی نمایید اجرا را زیر دستور unix در محدودیتها دیدن برای /sbin/sysctl -a است شده داده نشان زیر در خروجی از بخشی kernel.shmmax = kernel.shmall = kernel.shmmni = 4096 kernel.msgmax = 8192 kernel.msgmni = 16 kernel.msgmnb = kernel.sem = نمایید. مقایسه بال خروجی با را نتیجه ipcs l- دستور اجرای با اکنون آن مالک ipc منبع یک بردن میان از برای میمانند باقی نیز است ساخته را آنها که فرآیندی پایان از پس ipc منبعهای نمونه برای دهد. انجام را کار این ipcrm دستور کمک به یا بردارد میان از را منبع این سیستم فراخوانیهای کمک به باید ipcrm sem شمارهی دهندهی نشان آن از پس شده نوشته شمارهی و میرود کار به راهنما برداشتن میان از برای دستور این در sem پیام صف یک برداشتن میان از برای و میرود کار به shm مشترک حافظهی یک برداشتن میان از برای است. راهنما آن است. شده نوشته ipc دستورهای برای سیستم فراخوانیهای از خلصهای زیر در میشود. گرفته کار به msg ۳۳ کاشان دانشگاه مهندسی دانشکدهی کامپیوتر گروه عامل سیستم آزمایشگاه گزارش یوسفان احمد

34 Shared Memory System Call Semaphore Message Queue Functionality Shmget Semget msgget Allocate an IPC resource; gain access to an.existing IPC resource Shmctl Semctl msgctl Control an IPC resource: obtain/modify status.information, remove the resource Shmat shmdt Semop msgsnd msgrcv IPC operations: send/receive messages,perform semaphore operations, attach/free a shared.memory segment دیدگاه از میشود. نامیده ipc شناسهی که میشود داده آن به شمارهای پروندهها همانند منبع یک شدن ساخته از پس > در ipc مجوزهای ساختار است. ipc مجوزهای و اطلعات ساختار جدول به نمایه یک ipc شناسهی هر سیستم است. شده تعریف زیر صورت به ساختار این است. <sys/ipc.h> درون که است شده تعریف <bits/ipc.h struct ipc_perm { key_t key; /* Key */ uid_t uid; /* Owner's user ID. */ gid_t gid; /* Owner's group ID. */ uid_t cuid; /* Creator's user ID. */ gid_t cgid; /* Creator's group ID. */ unsigned short int mode; /* Access permission. */ unsigned short int pad1; unsigned short int seq; /* Sequence number. */ unsigned short int pad2; unsigned long int unused1; unsigned long int unused2; ; و <sys/types.h> سرآیندهای باید گیرند کار به را فرآیندها میان ارتباط امکانات میخواهند که برنامههایی همهی و Semget و msgget یعنی ) get سیستمی فراخوانی سه هر باشند. داشته خود آغاز در را <sys/ipc.h> منبع شناسهی ساختن برای آرگومان این هستند. صحیح) عدد پایهی (بر key_t نوع از آرگومانی دارای (Shmget ۳۴ کاشان دانشگاه مهندسی دانشکدهی کامپیوتر گروه عامل سیستم آزمایشگاه گزارش یوسفان احمد

35 برمیگردانند گونهای به را منبع شناسهی get فراخوانیهای میشود. نامیده (key ) کلید و میرود کار به ipc میرود. کار به کلید ساختن برای ftok تابع دارد. آرگومان) (این کلید با یک به یک رابطهی یک که (میسازند) key_t ftok ( char *pathname, char proj ); صورت در و میکند کمک منبع یک شناسهی ساختن در که برمیگرداند را کلید عدد شود موفق تابع این که صورتی در با مقدار که است نویسه یک دوم آرگومان و میشود گذاشته '.' اغلب تابع این نخست آرگومان برمیگرداند. را ۱- شکست میدهد. نشان را تابع این کارگیری به چگونگی زیر برنامهی بود. خواهد تابع این از برگشتی کلید بایت ارزشترین /* Using ftok to generate key values */ #include <iostream> #include <sys/types.h> #include <sys/ipc.h> using namespace std; int main( ){ key_t key; for (char i = 'a'; i <= 'd'; ++i) { key = ftok(".", i); cout << "proj = " << i << " key = [" << hex << key << "] MSB = " << char(key >> 24) << endl; return 0; است. آورده وجود به را زیر خروجی و proj = a key = [61097c0f] MSB = a proj = b key = [62097c0f] MSB = b proj = c key = [63097c0f] MSB = c proj = d key = [64097c0f] MSB = d ثابت مقدار برابر میتواند get سیستمی فراخوانیهای برای کلید مقدار برنمیگرداند. صفر مقدار هرگز ftok تابع یکتا شناسهی با ipc منبع یک سیستم که میکند مشخص مقدار این است. صفر مقدار برابر که باشد IPC_PRIVATE به را آن کنترل یا بیاورند وجود به را شناسه این با منبعی نتوانند دیگر فرآیندهای از یک هیچ که گونهای به آورد وجود به مرتبط فرآیندهای میان فرض پیش طور به است شده ساخته IPC_PRIVATE کمک به که منبعی گیرند. دست مرتبط فرآیندهای در میشود. گذاشته اشتراک به مشتری - کارگزار صورت به فرآیندهای یا فرزند/فرزند) یا (پدر/فرزند مشترک متغیرهای صورت (به میفرستد فرزند برای را آن آورد وجود به را فرزند فرآیند که هنگامی و میسازد را منبع پدر ۳۵ کاشان دانشگاه مهندسی دانشکدهی کامپیوتر گروه عامل سیستم آزمایشگاه گزارش یوسفان احمد

36 یک صورت به منبع و میسازد IPC_PRIVATE با را منبع کارگزار اغلب مشتری - کارگزار حالت در فرمان). خط یا منبع به دسترسی از دیگر فرآیندهای IPC_PRIVATE با صورت هر در میشود. گذاشته مشتری اختیار در پرونده بود. خواهد دشوار دیگر فرآیند یک برای منبع آن شناسهی یافتن فقط و نمیشوند بازداشته عدد آرگومان این است. (message flag) پیام پرچم است مشترک ipc در get تابعهای میان که دومی آرگومان ارزش کم بیت هشت میرود. کار به آمده وجود به ipc منبع دسترسیهای سطح کردن مشخص برای که است صحیحی سطح و سیستمی فراخوانیهای برای نیاز مورد نوعهای زیر جدول است. unix در متداول دسترسی سطح برای پرچم این میدهد. نشان را آنها دسترسی Shared Memory Semaphores Message Queues Permissions Required shmat to write to the shared memory segment semop increase or decrease a semaphore value msgsnd place message in the queue (write (alter shmctl write out modified IPC status information semctl set the value of one semaphore or a whole set; write out modified IPC status information msgctl write out modified IPC status information shmat read from the shared memory segment semop block until a semaphore becomes 0 msgrcv obtain message from queue read shmctl to retrieve IPC status information semctl to retrieve IPC status information msgctl to retrieve IPC status information ) «یا» دسترسیها مقدار با که است شده تعریف IPC_EXCL و IPC_CREAT ثابت دو شده یاد حالتهای بر افزون بسازد. را آن get دستور است نشده ساخته این از پیش منبع اگر که میکند مشخص IPC_CREAT میشود. (or IPC_CREAT صورت به IPC_EXCL ثابت میشود. برگردانده منبع شناسهی باشد شده ساخته این از پیش منبع اگر را ۱- مقدار get تابع بود شده ساخته منبع این از پیش اگر تا میشود ترکیب IPC_CREAT با IPC_EXCL برگرداند. این میشوند. گرفته کار به منبع کنترل برای (shmctl و msgctl semctl (یعنی ctl سیستمی فراخوانیهای > پروندهی (در است شده تعریف دستورها برای زیر ثابت مقدارهای دارند. نیاز دستور عدد و منبع شناسهی به فراخوانیها دارند) قرار <sys/ipc.h IPC_STAT ساختار با اشارهگری باید سیستم فراخوانی برمیگرداند. منبع وضعیت اطلعات از کپی به اشارهگری شوند. گذاشته ساختار این درون مقدارها تا بفرستد مناسب ۳۶ کاشان دانشگاه مهندسی دانشکدهی کامپیوتر گروه عامل سیستم آزمایشگاه گزارش یوسفان احمد

37 IPC_SET تغییر مالک گروه و حالت یک منبع ipc IPC_RMID حذف یک منبع ipc به همراه محتویات آن فقط فرآیندهایی میتوانند IPC_SET و IPC_RMID را بر روی منبعی به کار ببرند که مالک یا سازندهی آن منبع باشند یا اینکه سطح دسترسی کاربر ریشه (root) را داشته باشند. فراخوانیهای سیستمی msgsnd و msgrcv برای فرستادن و دریافت پیام به کار برده میشوند. به صورت پیش فرض اگر صف پر باشد سیستم msgsnd به آن صف را مسدود میکند و اگر صف خالی باشد سیستم msgrcv به آن صف را مسدود میکند. فرآیند مسدود باقی میماند تا شرط مورد نظر برقرار شود یا اینکه منبع نابود شود. با «یا» کردن IPC_NOWAIT با دیگر مقدارها عمل فرستادن یا دریافت بدون مسدود شدن انجام میشود. احمد یوسفان گزارش آزمایشگاه سیستم عامل گروه کامپیوتر دانشکدهی مهندسی دانشگاه کاشان ۳۷

38 مشترک حافظهی ۷ این ببرند. کار به اشتراکی طور به مجازی حافظهی فضای فرآیند چند که میکند فراهم را امکان این مشترک حافظهی هب را مشترک حافظهی قطعهی فرآیند یک کلی حالت در است. فرآیندها میان ارتباط برای راه) سادهترین (نه راه سریعترین بخش این شدن ساخته هنگام در مشترک حافظهی به دسترسی مجوزهای و اندازه میدهد. تخصیص را آن یا میآورد وجود میکند نگاشت خود دادههای برای کنونی حافظهی فضای به را مشترک حافظهی قطعه این فرآیند سپس میگردد. مشخص سخت کمک به مجازی حافظهی آدرس فضای به قطعه یک واقعی نگاشت میکند. اولیه دهی مقدار را آن نیاز صورت در و افزار سخت به وابسته آن دقیق انجام چگونگی و میشود انجام افزاری سخت صورت به (MMU) حافظه مدیریت واحد افزار حافظهی این میتوانند مشترک حافظهی شدن ساخته از پس بدهند اجازه دسترسی مجوزهای اگر فرآیندها دیگر است. آن به را مشترک حافظهی این که آدرسی فضای به بسته فرآیند هر کنند. نگاشت نیز خود دادهی فضای به را مشترک مشترک جای یک به مشترک حافظهی در فرآیندها این دادههای گرچه باشد. داشته دسترسی آن به میتواند است نگاشته حافظهی به مشترک حافظهی این اتصال آدرس به بسته این که میکند کار جداگانهای آدرس با فرآیند هر ولی دارند ارجاع نیا ندارد میبرد کار به که حافظهای بخشهای دیگر با تفاوتی هیچ شده نگاشت حافظهی این فرآیند هر برای است. فرآیند است. شده داده نشان زیر شکل در وضعیت همگام برای راهنماها از باید بنابراین ندارد. میبرند کار به را آن که را فرآیندهایی سازی همگام امکانات مشترک حافظهی فرآیند یک که هنگامی نیاید. پیش مشترک حافظهی تغییر و همزمان دسترسی مشکلت تا گرفت کمک فرآیندها این سازی و میماند باقی اصلی حافظهی ولی میشود جدا فرآیند این از آن به شده نگاشته مشترک حافظهی فضای رسید پایان به میتواند مشترک حافظهی سازندهی فرآیند البته نماید. حذف را آن باید است ساخته را مشترک حافظهی که فرآیندی بدهد. دیگری فرآیند به را مشترک حافظهی این مالکیت برای کلسی فقط اینجا در بنابراین است دشوار کلی حالت در راهنماها همانند نیز unix در مشترک حافظهی کارگیری به میشود. ارائه هستند مرتبط که فرآیندهایی برای مشترک حافظهی با کار کردن سادهتر /* Shared_mem.h ۳۸ کاشان دانشگاه مهندسی دانشکدهی کامپیوتر گروه عامل سیستم آزمایشگاه گزارش یوسفان احمد

39 A VERY simplified shared memory class for use in a std UNIX environment. See the text for instructions on how to use this class. Copyright (c) 2002 J. S. Gray Exit codes for class operations: 1 - Unable to allocate memory 2 - Unable map memory 3 - Could not remove shared memory * changed by ahmad yoosofan Nov 2008 * to correct g++ link error */ #ifndef Shared_mem_h #define Shared_mem_h // #define _GNU_SOURCE #include <iostream> #include <cstdio> #include <sys/types.h> #include <unistd.h> #include <stdlib.h> #include <sys/ipc.h> #include <sys/shm.h> using namespace std; template <class S_type> // Allow for different data types class Shared_mem { public: Shared_mem ( ); ~Shared_mem( ); // Constructor // Destructor - remove shared memory void Put( const S_type );// Assign value to shared memory احمد یوسفان گزارش آزمایشگاه سیستم عامل گروه کامپیوتر دانشکدهی مهندسی دانشگاه کاشان ۳۹

40 S_type Get( ); // Return value from shared memory private: int shmid; // ID of shared memory S_type *shm_ptr; pid_t my_pid; // Reference to shared memory // Hang on to originator PID ; // Generate private mem segment template <class S_type> // Generalize data type Shared_mem<S_type>::Shared_mem( ){ my_pid = getpid( ); // Save PID of creating process if ((shmid = shmget(ipc_private, sizeof(s_type), IPC_CREAT 0660)) < 0) exit(1); if ((shm_ptr = (S_type *) shmat(shmid, NULL, 0)) == NULL) exit(2); template <class S_type>// Remove memory if creator Shared_mem<S_type>::~Shared_mem( ) { if ( getpid( ) == my_pid ) { shmdt( (char *) shm_ptr ); if ( shmctl(shmid, IPC_RMID, (struct shmid_ds *) 0) == -1 ) exit( 3 ); template <class S_type>// Assign value to this location void Shared_mem<S_type>::Put( const S_type stuff ){ *shm_ptr = stuff; template <class S_type>// Retrieve value from location احمد یوسفان گزارش آزمایشگاه سیستم عامل گروه کامپیوتر دانشکدهی مهندسی دانشگاه کاشان ۴۰

41 S_type Shared_mem<S_type>::Get( ){ static S_type stuff; stuff = *shm_ptr; return stuff; #endif به دلیل مشکلتی که ++g برای کامپایل کردن برنامههای همراه با الگو (template) دارد کلس همراه با پیاده سازی آن در پروندهی سرآیند گذاشته شده است. در زیر برنامهای برای به کارگیری حافظهی مشترک به کمک این کلس نوشته شده است. /* Shared_mem_sample.cpp */ #include <iostream> #include <iomanip> #include <sys/types.h> #include <sys/wait.h> #include "Shared_mem.h" int main(int argc, char *argv[]) { int n; Shared_mem<int> s[4]; //Instantiate an array of shared memory objects //each to hold an integer value. if (argc < 2 (n = atoi(argv[1])) > 6 n < 1 ) { cerr << "Usage: " << argv[0] << " value 1-6" << endl; return 1; setbuf(stdout, NULL); // Standard output is unbuffered // Starting values s[0].put(0); s[1].put(1); s[2].put(64); // Process counter // Process # end of line // Output width احمد یوسفان گزارش آزمایشگاه سیستم عامل گروه کامپیوتر دانشکدهی مهندسی دانشگاه کاشان ۴۱

42 s[3].put(0); // Process # that starts new line cout << "\t\t\ttree of level " << n << endl << endl; for (int i=0; i < n; ++i) { if (!fork() ) { // in the child int temp_width = s[2].get();// get output width if ((s[0].get()) == s[3].get())// start of line use 1/2 temp_width /= 2; cout << setiosflags(ios::uppercase) << hex << setw(temp_width) << (s[0].get()) % 16; s[0].put(s[0].get()+1); // count the process if ( s[0].get() == s[1].get() ){// If at the end of line s[1].put( s[1].get() * );//update end of line process # s[2].put( s[2].get() / 2 ); // decrease output width s[3].put( s[0].get() ); // new sart of line process # cout << endl << endl; wait(0); // wait for the child to finish! return 0; اکنون به کمک راهنماها و حافظهی مشترک میتوان مسألههای مطرح شده در گزارشهای پیشین را به بهترین شکل پیاده سازی نمود. ۷ ۱ دستور کار ۱ برنامهی جمع دو ماتریس و ذخیرهی نتیجه در یک ماتریس را به کمک حافظهی مشترک بنویسید ۲ برنامهی ضرب دو ماتریس را به کمک حافظهی مشترک بنویسید. احمد یوسفان گزارش آزمایشگاه سیستم عامل گروه کامپیوتر دانشکدهی مهندسی دانشگاه کاشان ۴۲

43 ۸ راهنماها کار کردن با راهنماها در unix چندان ساده نیست و مستلزم درگیر شدن با مسئلههای زیادی است بنابراین در اینجا فقط به شکل ساده شدهای از راهنماها و پیاده سازی آنها پرداخته میشود که برای فرآیندهای مرتبط به کار گرفته میشوند. برای سادگی بیشتر کار کلسی در ++C آماده شده است که کار با راهنما را بسیار ساده مینماید و تابعها آشنای راهنماها را در اختیار برنامه نویس میگذارد. البته باید محدودیتهای یاد شده را در اینباره در نظر گرفت. /* SSemaphore.h A VERY simplified semaphore class for use in a std UNIX environment. See the text for instructions on how to use this class. Copyright (c) 2002 J. S. Gray Exit codes for class operations: 1 - Semaphore allocation failure 2 - Unable remove semaphore 3 - Unable to LOCK semaphore 4 - Unable to UNLOCK semaphore 5 - Failure on wait for ZERO 6 - Unable to assign value 7 - Unable to return value */ #ifndef SSemaphore_h #define SSemaphore_h #define _GNU_SOURCE #include <iostream> #include <cstdio> #include <sys/types.h> #include <sys/ipc.h> #include <sys/sem.h> #include <stdlib.h> #include <unistd.h> using namespace std; class SSemaphore { public: احمد یوسفان گزارش آزمایشگاه سیستم عامل گروه کامپیوتر دانشکدهی مهندسی دانشگاه کاشان ۴۳

44 SSemaphore ( ); ~SSemaphore( ); int P( ); void V( ); // Constructor // Destructor - remove semaphore // LOCK (decrement semaphore) // UNLOCK (increment semaphore) int Z( ); // WAIT while semaphore is NOT 0 void Put( const int ); int Get( ); // Assign a value to semaphore // Return value of the semaphore private: #if defined( GNU_LIBRARY ) &&!defined(_sem_semun_undefined) // definition in <sys/sem.h> #else union semun { int val; struct semid_ds *buf; unsigned short int *array; struct seminfo * buf; // We define: // value for SETVAL // buffer for IPC_STAT, IPC_SET // array for GETALL, SETALL // buffer for IPC_INFO ; #endif union semun arg; // For semctl call struct sembuf zero,lock, unlock; // hoo ha's for P,V & Z operations int semid; // ID of semaphore ; pid_t my_pid; #endif // PID of creator تابعهای این کلس در زیر توضیح داده شدهاند. SSemaphore This is the class constructor. This method assigns the proper values to the zero, lock, and unlock sembuf structures and saves the PID of the calling احمد یوسفان گزارش آزمایشگاه سیستم عامل گروه کامپیوتر دانشکدهی مهندسی دانشگاه کاشان ۴۴

45 process. Additionally, it generates the private, single element semaphore and sets it to 0. ~SSemaphore This method removes the semaphore from the system if the calling function is the process that generated the semaphore. P This method atomically tests and decrements the semaphore. It blocks if the semaphore is 0. V This method increments the semaphore. Z This method tests whether or not the semaphore is at 0. If it is not at 0, it blocks. Put Get Put assigns a value to a semaphore. Get returns the current value of a semaphore. برنامهی زیر پیاده سازی این کلس را نشان میدهد. /* SSemaphore.cpp SSemaphore implementation - Copyright (c) 2002 J. S. Gray */ #include "SSemaphore.h" SSemaphore::SSemaphore( ){// Generate a private semaphore zero.sem_num = 0, zero.sem_op = 0; zero.sem_flg = SEM_UNDO, lock.sem_num = 0; lock.sem_op = -1, lock.sem_flg = SEM_UNDO; unlock.sem_num = 0, unlock.sem_op = 1; unlock.sem_flg = SEM_UNDO; my_pid = getpid( ); if((semid = semget( IPC_PRIVATE, 1, 0660 )) == -1 ){ exit( 1 ); Put( 0 ); //Default - set to start SSemaphore::~SSemaphore( ) {// Remove semaphore if creator if ( getpid( ) == my_pid ) if ( semctl( semid, 0, IPC_RMID ) == -1 ) احمد یوسفان گزارش آزمایشگاه سیستم عامل گروه کامپیوتر دانشکدهی مهندسی دانشگاه کاشان ۴۵

46 exit( 2 ); int SSemaphore::P( ){// LOCK semaphore & Atomic test & decrement if ( semop( semid, &lock, 1 ) == -1 ) exit( 3 ); return 0; void SSemaphore::V( ){// UNLOCK semaphore & Increment semaphore if ( semop( semid, &unlock, 1 ) == -1 ) exit( 4 ); int SSemaphore::Z( ){// Wait for semaphore to be 0 if ( semop( semid, &zero, 1 ) == -1 ) exit( 5 ); return 0; void SSemaphore::Put( int const value ){ arg.val = value; //Assign value to the semaphore if ( semctl(semid, 0, SETVAL, arg ) == -1 ) exit( 6 ); int SSemaphore::Get( ){// Return value of the semaphore int sem_value; if ((sem_value=semctl(semid, 0, GETVAL, 0)) == -1 ) exit( 7 ); return sem_value; g++ Ssemaphore.cpp -c برای به کار بردن این برنامه کافی است یک بار آن را به صورت زیر کامپایل نمایید احمد یوسفان گزارش آزمایشگاه سیستم عامل گروه کامپیوتر دانشکدهی مهندسی دانشگاه کاشان ۴۶

47 سپس در بالی هر برنامهای که نیاز به راهنما دارد سرآیند زیر افزوده شود #include SSemphore.h برای کامپایل کردن برنامهای مانند my_prog.cpp که نیاز به راهنما دارد و سرآیند بال در آن گذاشته شده است باید دستور زیر را وارد نمود. g++ my_program.cpp SSemaphore.o در زیر یک راه حل نه چندان کامل برای مسئلهی فیلسوفها به کمک راهنما نوشته شده است. /* The dining philosophers */ #include <iostream> #include "SSemaphore.h" // Our basic semaphore class const int MAX = 5; SSemaphore Forks[MAX]; void Philosopher( int ); void Eat_It( const int,const int, const int ); int main(int argc, char *argv[] ) { int i; if ( argc < 2 ) { cerr << "Usage: " << argv[0] << " secs_to_wait " << endl; return 1; for( i=0; i < MAX; ++i ) Forks[i].Put(true); for(i = 0; i < MAX; ++i ) Philosopher( i ); sleep(atoi(argv[1]));// Parent process waits a bit return 0; void Philosopher(int number ){ if (fork() == 0) { // Run in the child int left, right; srand(getpid( )); احمد یوسفان گزارش آزمایشگاه سیستم عامل گروه کامپیوتر دانشکدهی مهندسی دانشگاه کاشان ۴۷

48 ۸ left = number; right= (number+1) % MAX; do { cout << "A. P" << number << " is thinking\n"; sleep(rand( ) % 3 + 1); // Take a while to THINK cout << "B. P" << number << " ASKS to eat with forks " << left << " & " << right << endl; Forks[left].P( ); Forks[right].P( ); // Acquire left fork // Acquire right fork Eat_It(number, left, right); Forks[right].V( ); Forks[left].V( ); while( true ); void Eat_It(const int number, const int left, const int right) { cout << "C. P" << number << " is EATING with forks " << left << " & " << right << endl; sleep(rand( ) % 3 + 1); // Take a while to EAT cout << "D. P" << number << " is now DONE with forks " << left << " & " << right << endl; ۱ دستور کار ۱ راه حل داده شده برای مسئلهی فیلسوفها را تحلیل کنید. ۲ مسئلهی دیگری را بیان کنید و به کمک راهنماها حل کنید. احمد یوسفان گزارش آزمایشگاه سیستم عامل گروه کامپیوتر دانشکدهی مهندسی دانشگاه کاشان ۴۸

49 windows : پنجم بخش و برنامهها کارگیری به حد در عامل سیستم این با کار البته میشود پرداخته ویندوز عامل سیستم با کار به بخش این در نصب عامل سیستم در کاری دست بدون که میخواهید اگر است. سودمند حرفهای کاربر یک برای که است دستورهایی سیستم سپس و نمایید نصب مجازی ماشین یک که است بهتر نمایید اجرا نگرانی بدون را دستورها بتوانید خود شدهی نمایید. نصب آن روی بر را دیگر عامل سیستم هر یا ویندوز عامل و vmware از هستند عبارت معروف مجازی ماشینهای. virtual box و کرد) نصب آن روی را عاملی سیستم هر میتوان ولی میشود نصب ویندوز روی بر (فقط virtual pc دستورها از برخی با آشنایی ۹ در Help and Support بخش میتوان ویندوز عامل سیستم از راهنمایی گرفتن برای شود. تایپ را helpctr دستور فرمان خط در اینکه یا نمود. اجرا را Start menu این در Command-line reference A-Z بخش در داریم کار و سر آن با اینجا در که فرمان خط دستورهای از بسیاری New command-line در را آنها میتوانید و شدهاند افزوده xp در تازگی به دستورها این بیشتر است. شده گذاشته راهنما ببینید. نیز tools نامیده اجرا پنجرهی که میشود باز که کوچکی پنجرهی در بگیرید را winkey+r ترکیبی کلید فرمان: خط به رفتن به را کارها این بدهید. فشار را کنید). کلیک OK دکمهی روی بر (یا Enter کلید سپس و cmd بنویسید آن در میشود. مینویسیم. زیر صورت winkey+r ---> {type cmd از یکی این بنویسید. را %windir% اجرا پنجرهی در است شده نصب عامل سیستم آن در که شاخهای به رفتن برای این از دیگر یکی شدهاند. گذاشته راهنما در Command shell overview بخش در متغیرها این است. محیطی متغیرهای جالب% userprofile % موارد نمود. وارد میتوان را زیر دستورهای کنترل مرکز به شدن وارد ی برا winkey+r ---> control ---> EnterKey شاخه یا درایو یک کردن باز winkey+r ---> explorer d: {or any dirve or folder path ---> Enter winkey + Pause ---> system properties است بهتر بیشتر کارآیی برای و xp نصب از پس بیاندازید. Scheduled Tasks و system Restore ابزارهای به نیز نگاهی شود انجام زیر کارهای 2000 به آن تبدیل و xp ر د خوب گرافیکی حالت برداشتن ۱ remote assistant برداشتن ۲ ۴۹ کاشان دانشگاه مهندسی دانشکدهی کامپیوتر گروه عامل سیستم آزمایشگاه گزارش یوسفان احمد

50 ۳ ۳ ۳ ۳ ۴ ۴ ۹ system Restore برداشتن ۳ hibernate برداشتن ۴ درایو روی و کنید عوض را مجازی حافظهی فایل جای که است بهتر بگیرید پشتیبان ویندوز درایو از خواهید می اگر ۵ بگذارید دیگری switch user برداشتن ۶ کاربران بخش در کنترل مرکز در wireless سیستم شما کامپیوتر اگر نمونه برای نیستند. سودمند که آنهایی برداشتن و کنترل مرکز در سرویسها بررسی ۷ بردارید. را سرویس این است بهتر کند نمی پشتیبانی را remote regitery برداشتن ۸ terminal service و به دیگری اضافه برنامه یا ویروس آیا که فهمید توان می گاهی اجرا حال در های برنامه و سرویسها به کردن دقت با ۹ خیر یا است اجرا حال در ناخواسته صورت که هرگاه نمونه برای است شده افزوده سیستم به فرآیندهایی یا فرآیند چه ای برنامه هر اجرای از پس که نمایید دقت ۱۰ شود. می اجرا mmc فرآیند خودکار صورت به شوند می کنترل مرکز وارد میدهد. افزایش را کارآیی کاربر) رابط ویژه امکانات(به کردن کم ۱۱ کار دستور ۱ دهید. توضیح خط یک کدام هر دربارهی و بنویسید را دیگر محیطی متغیر چهار نام ۱ cmd /? دهید توضیح و بنویسید را زیر دستور فرمان خط در ۲ بشوید. (User Accounts) کاربران حساب بخش وارد سپس بروید. کنترل مرکز به ۳ کنید. تعریف جدید کاربر یک ۱ دهید توضیح را کدام هر باشد نوع چند بر میتواند میکنید تعریف که کاربری ۲ میدهد انجام کارهایی چه change the way users log on or off بخش ۳ دهید انجام میتوانید کارهایی چه کردهاید تعریف که کاربری روی بر ۴ شوید. (Administrative مدیریت( Tools ابزارهای بخش وارد کنترل مرکز در ۴ بررسی هدف اینجا در کنید. دقت است شده باز که برنامهای به برگزینید. را (Computer Management) رایانه مدیریت کنید. نگاه را گروهها فهرست بیابید. را آنها است. آنها کاری گروههای و کاربران هستند کاری چه برای کدام هر گروهها این بنویسید. را گروهها نام ۴ ۱ میکنید تعریف کاربر اینجا در چگونه کنید. نگاه را کاربران فهرست ۲ دهید توضیح دهید انجام کاربران روی بر میتوانید کارهایی چه ۳ ۵۰ کاشان دانشگاه مهندسی دانشکدهی کامپیوتر گروه عامل سیستم آزمایشگاه گزارش یوسفان احمد

51 ۶ ۶ ۷ ۵ ۴ چیست دهید) تغییر را آن نام که آن از ویندوز(پیش در سیستم مدیر نام ۴ و storage و Device manager و Shared Folders Event Viewer همچون رایانه مدیریت دیگر بخشهای ۵ و کنید. نگاه نیز Services سرویسها بخش در بنویسید. کدام هر دربارهی کوتاه توضیح یک هستند کاری چه برای بخشها این از کدام هر ۱ بیاورید. نمونه و داده توضیح را سرویسها وابستگی مفهوم دهید انجام میتوانید کارهایی چه برگردید. کنترل مرکز در مدیریت ابزارهای بخش به ۶ کجا بودید ندیده را آنها این از پیش آیا ببینید اینجا در را Services و Event Viewer بخشهای ۱ با همراه نمونه شش دهید انجام میتوانید اینجا کارهایی چه. شوید وارد Local Security Policy به اکنون ۲ بنویسید. توضیح winkey+r --> mmc --> Enter کنید اجرا را روبرو دستور ۷ است نشده جمع اینجا در پیشین کارهای از بسیاری آیا دهید انجام میتوانید کارهایی چه برنامه این با ۱ تا که موردهایی همهی برای یکسان کاربری رابط یک این آیا دهید توضیح را آن به امکانات افزودن و آن با کار چگونگی نمیکند فراهم کردیم بررسی کنون میگیرید نتیجهای چه هستند نیز یکسان و کنید کار اطلعات این با میتوانید گوناگون بخشهای در اینکه از ۲ ۷ mmc به شدنیها افزوده کامل فهرست داد. انجام نیز دور راه کامپیوتر یک روی را کارها از برخی میتوان میرسد نظر به ۸ خیر یا شود انجام نیز دور راه کامپیوتر روی بر میتواند آیا کنید مشخص کدام هر برای و بنویسید را اشیاء و فایلها سطح در امنیت و امنیت ایجاد چگونگی با آشنایی هدف ۹ که درایوی در شاخه یک به هستند. NTFS درایوهای در که شاخههایی و پروندهها روی بر امنیت گذاشتن چگونگی دسترسی شاخه یا پرونده امنیت به مربوط بخش به از پیش اگر ببرید. کار به را زیر روش کار این برای بروید. باشد NTFS داده نشان امنیت به مربوط بخش شما (folder شاخهی( property یا (file پرونده( property ویژگیهای در باشید نداشته سپس کنید. انتخاب را شاخه آن دهید. انجام را زیر کارهای پرونده) (یا شاخه یک ویژگیهای به دسترسی برای نمیشود. ویژگیها( گزینهی آنگاه دهید) فشار را موشواره راست سمت دکمهی اینکه (یا دهید فشار را (menu key) منو کلید دهید. فشار را Ctrl+Enter شاخه انتخاب از پس اینکه یا برگزینید. را (properties نمیشود. دیده امنیت گزینهی آن در که است شده داده نشان شاخه یک ویژگیهای زیر شکل در ۵۱ کاشان دانشگاه مهندسی دانشکدهی کامپیوتر گروه عامل سیستم آزمایشگاه گزارش یوسفان احمد

52 در آغاز باید حالت نمایش تغییر کند و در هنگام نمایش ویژگیهای پرونده یا شاخه امنیت نیز در آن نشان داده شود. برای این کار از منوی Tools گزینهی Folder Option را برگزینید یا اینکه در مرکز کنترل panel) (control این بخش را برگزینید. سپس بخش View را برگزینید. در بخش Advance setting گزینهی use simple file sharing را از حالت انتخاب خارج کنید و سپس دکمهی تأیید (OK) را فشار دهید (یا اینکه دکمهی اعمال کردن را فشار دهید) البته میتوانید این تغییرات را برای همهی شاخهها و درایوها انجام دهید. احمد یوسفان گزارش آزمایشگاه سیستم عامل گروه کامپیوتر دانشکدهی مهندسی دانشگاه کاشان ۵۲

53 اکنون میتوانید به بخش امنیت پرونده یا شاخه دسترسی پیدا کنید. احمد یوسفان گزارش آزمایشگاه سیستم عامل گروه کامپیوتر دانشکدهی مهندسی دانشگاه کاشان ۵۳

یک هشدار دهنده صوتی قطع اینترنت یک راهکار عالی برای آنکه بدانید اینترنت شما چه زمانی قطع شده است

یک هشدار دهنده صوتی قطع اینترنت یک راهکار عالی برای آنکه بدانید اینترنت شما چه زمانی قطع شده است یک هشدار دهنده صوتی قطع اینترنت یک راهکار عالی برای آنکه بدانید اینترنت شما چه زمانی قطع شده است زمانی که اتصال اینترنتی قطع میشود سادهترین راهکاری که پیش روی شما قرار دارد نگاه کردن به آیکن وایفای است

More information

مرتب سازی. (sort) : ویرایش احمدرضا غدیرزاده دانشجوی رشته ی مهندسی کامپیوتر

مرتب سازی. (sort) : ویرایش احمدرضا غدیرزاده دانشجوی رشته ی مهندسی کامپیوتر مرتب سازی (sort) : ویرایش احمدرضا غدیرزاده دانشجوی رشته ی مهندسی کامپیوتر تعریف کلید بخشی از هر رکورد که مرتبسازی بر اساس آن انجام میگیرد. به طور کلی الگوریتمهای مرتبسازی را میتوان به دو گروه تقسیم کرد:

More information

آشنایی با دستورNetStat

آشنایی با دستورNetStat آشنایی با دستورNetStat این دستور وضعیت پروتکلها و پورتهای ارتباطی TCP/IP را نمایش می دهد. در صورتی که این دستور بدون هیچ سوئیچی استفاده شود این دستور کلیه پورتها و ارتباطات خروجی فعال را نمایش می دهد.

More information

دستور خروجی. :cout این شی ء در فایل سرآیند iostream.h قرار دارد نکته: در 2008 این شی ء با افزودن ; std using namespace قابل دسترسی است.

دستور خروجی. :cout این شی ء در فایل سرآیند iostream.h قرار دارد نکته: در 2008 این شی ء با افزودن ; std using namespace قابل دسترسی است. دستور خروجی به برنامه :cout این شی ء در فایل سرآیند iostream.h قرار دارد نکته: در 2008 این شی ء با افزودن ; std using namespace قابل دسترسی است. شکل کلی :cout ;

More information

آزمون برنامهنویسی جاوا

آزمون برنامهنویسی جاوا هب انم خا ل ق یکتا انجمن جاواکاپ آزمون برنامهنویسی جاوا نمونه آزمون جاوا: بخش پایه و حرفهای تعداد سواالت مدت زمان پاسخگویی نام و نام خانوادگی: شماره داوطلبی: سواالت بخش پایه String text = "Ali#and#Taghi#are#friends";

More information

بر روی هر یک از تجهیزاتی که از پروتکل IP/TCP پشتیبانی می کنند به ۲ طریق می توان Address IP تنظیم کرد.

بر روی هر یک از تجهیزاتی که از پروتکل IP/TCP پشتیبانی می کنند به ۲ طریق می توان Address IP تنظیم کرد. بر روی هر یک از تجهیزاتی که از پروتکل IP/TCP پشتیبانی می کنند به ۲ طریق می توان Address IP تنظیم کرد. Static Dynamic - - حتما تمامی خوانندگان با روش static آشنایی دارند. همان روش وارد کردن آدرس ها بصورت

More information

MODBUS ETHERNET و مفاهیم پایه

MODBUS ETHERNET و مفاهیم پایه MODBUS ETHERNET و مفاهیم پایه IP (network and sharing) 7 Network and Sharing Center. (Change adapter» «. settings). Properties (local adapter) : Internet Protocol Local Area Connection Properties. Properties.

More information

The no service password-recovery Command for Secure ROMMON Configuration

The no service password-recovery Command for Secure ROMMON Configuration دستور no service password-recovery قابلیتهای امنیتی ROMMON را فعال میکند ولی در هنگام استفاده از این دستور باید نهایت دقت رو انجام بدید و گرنه با دردسرهای زیادی مواجه خواهید شد. این دستور در جایی کاربرد

More information

حقوق مؤلف. انجمن جاواکاپ اشیاء در جاوا

حقوق مؤلف. انجمن جاواکاپ اشیاء در جاوا دن یک م م ی نجاواکاپتقد م نج ا جاوا نويسی برنامه دوره جاوا در اشیاء JAVA OBJECTS ری کب یا عل صادق حقوق مؤلف کلیه حقوق این اثر متعلق به است بازنشر یا تدریس آنچه توسط جاواکاپ و به صورت عمومی منتشر شده است

More information

بسم الله الرحمن الرحیم آموزشگاه تحلیل داده تخصصی ترین مرکز برنامه نویسی و دیتابیس در ایران قابل جابجایی مدرس : مهندس افشین رفوآ

بسم الله الرحمن الرحیم آموزشگاه تحلیل داده تخصصی ترین مرکز برنامه نویسی و دیتابیس در ایران قابل جابجایی مدرس : مهندس افشین رفوآ بسم الله الرحمن الرحیم آموزشگاه تحلیل داده تخصصی ترین مرکز برنامه نویسی و دیتابیس در ایران قابل جابجایی مدرس : مهندس افشین رفوآ قابل جابجایی jqueryui متد draggable() را برای ساخت عنصر قابل جابجایی DOM

More information

.1 دستور ASSOC برای تغییر و نشان دادن اینکه چه فایلی با چه برنامه ای باز شود ASSOC.txt=textfile

.1 دستور ASSOC برای تغییر و نشان دادن اینکه چه فایلی با چه برنامه ای باز شود ASSOC.txt=textfile برای وارد شدن به CMD در ویندوز از منو استارت وارد Run شوید و عبارت CMD را تایپ کنید و اینتر بزنید.1 دستور ASSOC برای تغییر و نشان دادن اینکه چه فایلی با چه برنامه ای باز شود ASSOC.txt=textfile.2 دستور

More information

access-list access-list-number {permit deny} {host source source-wildcard any}

access-list access-list-number {permit deny} {host source source-wildcard any} Cisco Access List در ترجمه لغوی به معنای لیست دسترسی سیسکو می باشد که زیاد هم از معنای واقعی خود دور نیست. همانطور که از اسم آن بر می آید به وسیله این ابزار میتوانیم بر روی سخت افزارهای سیسکو فایروال ایجاد

More information

حقوق مؤلف. انجمن جاواکاپ 2 تولد و مرگ اشیاء

حقوق مؤلف. انجمن جاواکاپ 2 تولد و مرگ اشیاء دن یک م م ی نجاواکاپتقد م نج ا جاوا نويسی برنامه دوره اشیاء مرگ و تولد Objects Initialization and Cleanup ری کب یا عل صادق حقوق مؤلف کلیه حقوق این اثر متعلق به است بازنشر یا تدریس آنچه توسط جاواکاپ و به

More information

ابتدا نصب بودن بسته VConfig که برای راه اندازی VLAN مورد نیاز است را بررسی کنید:

ابتدا نصب بودن بسته VConfig که برای راه اندازی VLAN مورد نیاز است را بررسی کنید: اعطا ما مدیریت و شبکه به را تری افزون وری بهره و کارایی بیشتر امنیت تر آسان مدیریت VLAN می کند.دلیل و توجیه استفاده از VLAN بنا به نیاز و طراحی شبکه متغییر است VLAN. در تعریف ساده تقسیم شبکه موجود به چندین

More information

کامل ترین دوره های آموزش برنامه نویسی پایگاه داده معماری نرم افزار و موبایل به همراه مجموعه مقاالت و فیلم های آموزشی رایگان در:

کامل ترین دوره های آموزش برنامه نویسی پایگاه داده معماری نرم افزار و موبایل به همراه مجموعه مقاالت و فیلم های آموزشی رایگان در: کامل ترین دوره های آموزش برنامه نویسی پایگاه داده معماری نرم افزار و موبایل به همراه مجموعه مقاالت و فیلم های آموزشی رایگان در: www.tahlildadeh.com استفاده از این مطالب با ذکر منبع بال مانع است. شی SqlCommand

More information

ILUM-SAM7s راهنمای نرم افزار پردازش سبز هونام. راهنمای نرم افزاری ILUM-SAM7s

ILUM-SAM7s راهنمای نرم افزار پردازش سبز هونام. راهنمای نرم افزاری ILUM-SAM7s پردازش سبز هونام ILUM-SAM7s راهنمای نرم افزار و نحوه ی پروگرم کردن میکروکنترلر و نیز کامپایل و اجرای یک کد نمونه در محیط نرم افزاری IAR نحوه پروگرام کردن ILUM-SAM7s برنامه SAM-BAرا از داخل CD نصب و کامپيوتر

More information

آزمایشگاه شبکههای کامپیوتری

آزمایشگاه شبکههای کامپیوتری آزمایشگاه شبکههای کامپیوتری دانشگاه سمنان دانشکده برق و کامپیوتر. دستورالعمل شماره 9: آشنایی با مسیریابی پویا محمدرضا رازیان ویرایش 3.0 به نام خدا در شد. این دستورالعمل با لیسته یا کنترل دسترسی آشنا خواهیم

More information

بسم اهلل الرحمن الرحیم

بسم اهلل الرحمن الرحیم بسم اهلل الرحمن الرحیم آموزشگاه تحلیل داده تخصصی ترین مرکز برنامه نویسی و دیتابیس در ایران آموزش نحوه ی از استفاده اندروید List در قسمت ششم مدرس : مهندس افشین رفوآ آموزش نحوه ی استفاده از List در اندروید

More information

اشاره گر به تابع 5/23/2016

اشاره گر به تابع 5/23/2016 /* * advanced programming * Alireza Akhavan Pour * akhavan@alirezaweb.com * date: 1395/03/03 */ int main() { cout

More information

بسمه تعالی نمونه آزمون برنامهنویسی جاواکاپ 12 شهریور 2931

بسمه تعالی نمونه آزمون برنامهنویسی جاواکاپ 12 شهریور 2931 بسمه تعالی نمونه آزمون برنامهنویسی جاواکاپ 12 شهریور 2931 نکات مهم: همه سؤاالت چند گزينهای هستند. سؤاالت نمره منفی ندارند. هر سؤال بين سه تا ده گزينه دارد. هر سؤال ممکن است بيش از يک گزينه صحيح داشته باشد.

More information

اواج یسيون همانرب هرود باتزاب

اواج یسيون همانرب هرود باتزاب دن ممیک ی نجاواکاپتقد م نج ا جاوا نويسی برنامه دوره بازتاب Reflection صادقعلیاکبری حقوق مؤلف کلیه حقوق این اثر متعلق به است بازنشر یا تدریس آنچه توسط جاواکاپ و به صورت عمومی منتشر شده است با ذکر مرجع )جاواکاپ(

More information

پرﺎﺷ ﯽﺳ شزﻮﻣآ C#.NET ﺎﻫ ﻪﺘﺷر ﺎﺑ رﺎﮐ

پرﺎﺷ ﯽﺳ شزﻮﻣآ C#.NET ﺎﻫ ﻪﺘﺷر ﺎﺑ رﺎﮐ آموزش سی شارپ C#.NET کار با رشته ها طریقه ایجاد کردن رشته ها: راه معمول تعریف رشته در سی شارپ استفاده از دو علامت نقل قول است. ("abcdef") که رشته مورد نظر ما در بین این دو علامت تایپ می شود. string newstring

More information

اواج یسيون همانرب هرود طساو

اواج یسيون همانرب هرود طساو دن یک م م ی نجاواکاپتقد م نج ا جاوا نويسی برنامه دوره واسط Interface ری کب یا عل صادق حقوق مؤلف کلیه حقوق این اثر متعلق به است بازنشر یا تدریس آنچه توسط جاواکاپ و به صورت عمومی منتشر شده است با ذکر مرجع

More information

پایتون جهت دسترسی به دیتابیس از توابع کتابخانه ای DB-API استفاده کرده و interface هایی که برای

پایتون جهت دسترسی به دیتابیس از توابع کتابخانه ای DB-API استفاده کرده و interface هایی که برای MySQL و دسترسی به دیتابیس Python پایتون جهت دسترسی به دیتابیس از توابع کتابخانه ای DB-API استفاده کرده و interface هایی که برای اتصال به پایگاه داده و مدیریت داده های اپلیکیشن بایستی پیاده سازی شود بر

More information

فهرست مطالب. سیستم مورد نیاز جهت نصب :... Kaspersky Anti-Virus نصب...: Kaspersky Anti-Virus نصب استاندارد...

فهرست مطالب. سیستم مورد نیاز جهت نصب :... Kaspersky Anti-Virus نصب...: Kaspersky Anti-Virus نصب استاندارد... سانا سیستم پارس www.kasperskyir.com 1 فهرست مطالب سیستم مورد نیاز جهت نصب :... Kaspersky Anti-Virus 2015 5 نصب...: Kaspersky Anti-Virus 2015 7-1 -2-2-1 نصب استاندارد...: 8-3 فعالسازی : Kaspersky Anti-Virus

More information

حقوق مؤلف. انجمن جاواکاپ 2 چند داستان کوتاه درباره امکانات جاوا

حقوق مؤلف. انجمن جاواکاپ 2 چند داستان کوتاه درباره امکانات جاوا دن یک م م ی نجاواکاپتقد م نج ا جاوا نويسی برنامه دوره جاوا امکانات درباره کوتاه داستان چند Java Short Stories ری کب یا عل صادق حقوق مؤلف کلیه حقوق این اثر متعلق به است بازنشر یا تدریس آنچه توسط جاواکاپ

More information

بسم الله الرحمن الرحیم آموزشگاه تحلیل داده تخصصی ترین مرکز برنامه نویسی و دیتابیس در ایران. آموزش Table در HTML مدرس : مهندس افشین رفوآ

بسم الله الرحمن الرحیم آموزشگاه تحلیل داده تخصصی ترین مرکز برنامه نویسی و دیتابیس در ایران. آموزش Table در HTML مدرس : مهندس افشین رفوآ بسم الله الرحمن الرحیم آموزشگاه تحلیل داده تخصصی ترین مرکز برنامه نویسی و دیتابیس در ایران آموزش Table در HTML مدرس : مهندس افشین رفوآ آموزش Table در HTML جدول های HTML به نویسندگان وب اجازه می دهند تا

More information

بسم اهلل الرحمن الرحیم

بسم اهلل الرحمن الرحیم بسم اهلل الرحمن الرحیم آموزشگاه تحلیل داده تخصصی ترین مرکز برنامه نویسی و دیتابیس در ایران آموزش رشته ها در سی شارپ مدرس : مهندس افشین رفوآ آموزش رشته ها در سی شارپ در #C می توانید از رشته ها به عنوان

More information

حقوق مؤلف. انجمن جاواکاپ 2 رشته آرایه و چند داستان دیگر

حقوق مؤلف. انجمن جاواکاپ 2 رشته آرایه و چند داستان دیگر دن یک م م ی نجاواکاپتقد م نج ا جاوا نويسی برنامه دوره دیگر داستان چند و آرایه رشته STRING, ARRAY, AND OTHER STORIES ری کب یا عل صادق حقوق مؤلف کلیه حقوق این اثر متعلق به است بازنشر یا تدریس آنچه توسط جاواکاپ

More information

شروع کار با Entity Framework Core 2.0 ASP.NET Core 2.0

شروع کار با Entity Framework Core 2.0 ASP.NET Core 2.0 شروع کار با Entity Framework Core 2.0 ASP.NET Core 2.0 این مقاله نشان می دهد چگونه یک برنامه Entity Framework Core 2.0 MVC Web با استفاده از Visual Studio 2017 و ASP.NET Core ایجاد کنیم و چگونه عملیات

More information

بسم الله الرحمن الرحیم آموزشگاه تحلیل داده تخصصی ترین مرکز برنامه نویسی و دیتابیس در ایران. آموزش ایجاد کنترل های سفارشی / controls ASP.

بسم الله الرحمن الرحیم آموزشگاه تحلیل داده تخصصی ترین مرکز برنامه نویسی و دیتابیس در ایران. آموزش ایجاد کنترل های سفارشی / controls ASP. و< بسم الله الرحمن الرحیم آموزشگاه تحلیل داده تخصصی ترین مرکز برنامه نویسی و دیتابیس در ایران آموزش ایجاد کنترل های سفارشی / controls ASP.NET Custom مدرس : مهندس افشین رفوآ آموزش ایجاد کنترل های سفارشی

More information

بسم اهلل الرحمن الرحیم

بسم اهلل الرحمن الرحیم بسم اهلل الرحمن الرحیم آموزشگاه تحلیل داده تخصصی ترین مرکز برنامه نویسی و دیتابیس در ایران آموزش نحوه ی از استفاده اندروید action bar قسمت سوم مدرس : مهندس افشین رفوآ آموزش نحوه ی استفاده از action bar

More information

آموزش تصویری نصب Kerio Control. شرکت Bitdefender تعویض کرده و به طور کامل هم از سخت افزار های 64 بیت حمایت می نه (که

آموزش تصویری نصب Kerio Control. شرکت Bitdefender تعویض کرده و به طور کامل هم از سخت افزار های 64 بیت حمایت می نه (که دانلود Kerio Control Installer 9.2.2-2172 امروزه دغدغه بسیاری از ادمین های شب ه این شده است که چ ونه م توان پهنای باند مصرف توسط کاربران را کنترل کرد. نرم افزار های بسیاری به منظور کنترل و مانیتور کردن

More information

عنوان مقاله : نحوه ایجاد تصویر captcha در ASP.net تهیه وتنظیم کننده : مرجع تخصصی برنامه نویسان

عنوان مقاله : نحوه ایجاد تصویر captcha در ASP.net تهیه وتنظیم کننده : مرجع تخصصی برنامه نویسان در این مقاله قصد داریم نشان دهیم که چگونه می توان تصویر Captcha را در برنامه های ASP.netخود قرار دهیم captcha.برای تشخیص ربات ها از انسان ها ایجاد شده اند که با استفاده از آن ربات ها نتوانند به سایت وارد

More information

بسم اهلل الرحمن الرحیم

بسم اهلل الرحمن الرحیم بسم اهلل الرحمن الرحیم آموزشگاه تحلیل داده تخصصی ترین مرکز برنامه نویسی و دیتابیس در ایران نحوه شمارش در حلقه مدرس : مهندس افشین رفوآ آدرس آموزشگاه:تهران - خيابان شريعتی - باال تر از خيابان ملک - جنب بانک

More information

خروجی

خروجی خروجی خروجی DayOfWeek d; for (d=dayofweek.sunday;d

More information

مستندات کار با وب سرویس سیستم خبری نیوزویت

مستندات کار با وب سرویس سیستم خبری نیوزویت به خدا مستندات کار با وب سرویس سیستم خبری نیوزویت (Newsvit REST-API Documentation) بخش اخبار لیست اخبار list گرفتن لیست اخبار http://newsvit.ir/api/news/list?limit=8&page=3&order=&sort=asc&count=0 مرتب

More information

آسیب پذیري هاي تزریق SQL

آسیب پذیري هاي تزریق SQL به نام خدا دانشگاه صنعتی امیرکبیر دانشکده مهندسی کامپیوتر و فناوري اطلاعات آسیب پذیري هاي تزریق SQL CSRF و XSS اراي ه دهنده: محمود قربانزاده تحت نظر: دکتر حمید رضا شهریاري مهر 1393 ده آسیب پذیري برتر (در

More information

صف اولویت. سید ناصر رضوی

صف اولویت.  سید ناصر رضوی صف اولویت www.snrazavi.ir ۱۳۹۵ سید ناصر رضوی فهرست مطالب 2 اولویت. صف واسط () پیادهسازیهای اولیه هرمهای دودویی مرتبسازی هرمی کاربردها 3 واسط صف اولویت صف اولویت 4 کلکسیون ها. کدام پشته. حذف صف. حذف صف

More information

سیستم جامع مانیتورینگ شبکه و دیتا سنتر بینا معرفی زیر سیستم مانیتورینگ الگ بینا

سیستم جامع مانیتورینگ شبکه و دیتا سنتر بینا معرفی زیر سیستم مانیتورینگ الگ بینا معرفی زیر سیستم مانیتورینگ الگ بینا Syslog چیست روشی استاندارد برای ارسال پیغام الگ در شبکه می باشد. Syslog پروتکل تقریبا همه تجهیزات شبکه از این پروتکل پشتیبانی می کنند. روشی ایده ال برای جمع آوری الگ

More information

یربیاس تینما ینابم لوا هسلج

یربیاس تینما ینابم لوا هسلج جلسه اول مبانی امنیت سایبری تهیه کننده: دامون حقوق معنوی اختصاص - این مطلب به پروژه توانا مربوط به سازمان E-Collaborative for Civic Education اختصاص دارد و استفاده از آن می بایست با ذکر نام سازمان تهیه

More information

شروع کار با CSS. بخش هشتم: CSS Specificity سید کاوه احمدی

شروع کار با CSS. بخش هشتم: CSS Specificity سید کاوه احمدی شروع کار با CSS بخش هشتم: CSS Specificity سید کاوه احمدی سوال المان p به چه رنگی نمایش داده خواهد شد #mainnote { color: Blue; } div.note { color: green; }

More information

لیست پیوندی. امیر جهانگرد

لیست پیوندی. امیر جهانگرد لیست پیوندی امیر جهانگرد jahangard@yazd.ac.ir مقدمه 2 در بسیاری از کاربردها خوب است که سازماندهی شوند. آرایهها نمونهای از پیادهسازی سیستها مزایا: دسترسی آسان به عناور آرایه ایجاد آسان حلقه تکرار برروی

More information

SQL: Queries, Constraints, Triggers

SQL: Queries, Constraints, Triggers اصول طراحی پایگاه داده ها Principles of Database Design SQL: Queries, Constraints, Triggers مدرس : عاطفه خزاعی 1 زبان پرس و جوی SQL شرکت IBM در دهه 1970 در سیستم مدیریت پایگاهداده System R برای اولین بار

More information

20. تمرين : ساخت برنامه ی تبديل دما

20. تمرين : ساخت برنامه ی تبديل دما بسم اهلل الرحمن الرحيم آموزشگاه تحليل داده تخصصی ترين مرکز برنامه نويسی و ديتابيس در ايران برنامه نويسی تحت اندرويد با Android Studio يا Eclipse ADT مدرس : مهندس افشين رفوآ کليه حقوق مادی و معنوی اين مقاله

More information

دیوار آتشهای متنباز تابستان 96. کد: APA-Semnan-Open-Source-Firewalls طبقهبندی: عادی

دیوار آتشهای متنباز تابستان 96.  کد: APA-Semnan-Open-Source-Firewalls طبقهبندی: عادی کد: طبقهبندی: http://cert.semnan.ac.ir cert@semnan.ac.ir تابستان 96 مقدمه دیوار آتش 1 یک قطعهی نرمافزاری یا سختافزاری است که مانند دیواری از رایانهی شما محافظت میکند. در واقع دیوار آتش با تمرکز بر روی

More information

نظریه صف Queuing Theory سید صابر ناصرعلوی بخش مهندسی عمران دانشگاه شهید باهنر کرمان

نظریه صف Queuing Theory سید صابر ناصرعلوی بخش مهندسی عمران دانشگاه شهید باهنر کرمان نظریه صف Queuing Theory سید صابر ناصرعلوی بخش مهندسی عمران دانشگاه شهید باهنر کرمان نظریه صف 4. نظریه صفبندی شاخهای به که از ریاضی مطالعه صف ها ویژگی های و آنها می پردازد. ارزیابی وسیله ای برای محاسبه

More information

<h2>nonmonotonic Reasoning: Context- Dependent Reasoning</h2> <i>by <b>v. Marek</b> and <b>m. Truszczynski</b></i><br> Springer 1993<br> ISBN

<h2>nonmonotonic Reasoning: Context- Dependent Reasoning</h2> <i>by <b>v. Marek</b> and <b>m. Truszczynski</b></i><br> Springer 1993<br> ISBN nonmonotonic Reasoning: Context- Dependent Reasoning by v. Marek and m. Truszczynski Springer 1993 ISBN 0387976892 nonmonotonic Reasoning: Context-Dependent

More information

12. تست activity برنامه

12. تست activity برنامه بسم اهلل الرحمن الرحيم آموزشگاه تحليل داده تخصصی ترين مرکز برنامه نويسی و ديتابيس در ايران آزمايش برنامه های کاربردی اندرويد با بهره گيری از چهارچوب نرم افزاریframework / Android test مدرس : مهندس افشين

More information

معرفی دوره MTCNA مخاطبین دوره : پیشنیاز دوره : خروجی دوره MTCNA

معرفی دوره MTCNA مخاطبین دوره : پیشنیاز دوره : خروجی دوره MTCNA معرفی دوره MTCNA دوره MTCNA بعنوان اولین دوره آموزشی میکروتیک بوده و پیشنیاز بقیه دوره های مهندسی این شرکت می باشد دانشجویان پس از پایان دوره با RouterOS و RouterBoard ها آشنایی پیدا کرده و روش های ارائه

More information

دکتر محمد کاظم اکبری مرتضی سرگلزایی جوان

دکتر محمد کاظم اکبری مرتضی سرگلزایی جوان به نام خدا مدل برنامه نویسی نگاشت-کاهش دکتر محمد کاظم اکبری مرتضی سرگلزایی جوان http://crc.aut.ac.ir 1 Memory مروری بر روشهای موازی سازی Programming models Shared memory (pthreads) Message passing (MPI)

More information

بسم اهلل الرحمن الرحیم

بسم اهلل الرحمن الرحیم بسم اهلل الرحمن الرحیم آموزشگاه تحلیل داده تخصصی ترین مرکز برنامه نویسی و دیتابیس در ایران آموزش از استفاده Drawable ها در اندروید مدرس: مهندس افشین رفوآ در این بخش به کاربرد drawable ها در اندروید می

More information

حقوق مؤلف. انجمن جاواکاپ 2 مدیریت خطا و استثنا

حقوق مؤلف. انجمن جاواکاپ 2 مدیریت خطا و استثنا دن یک م م ی نجاواکاپتقد م نج ا جاوا نويسی برنامه دوره استثنا و خطا مدیریت Exceptions ری کب یا عل صادق حقوق مؤلف کلیه حقوق این اثر متعلق به است بازنشر یا تدریس آنچه توسط جاواکاپ و به صورت عمومی منتشر شده

More information

C++ 2 هر ساختار از دو يا چند عضو كه به همراه هم يك واحد منطقي را ميسازند

C++ 2 هر ساختار از دو يا چند عضو كه به همراه هم يك واحد منطقي را ميسازند 10/18/2014 C++ 2 2014 struct هر ساختار از دو يا چند عضو كه به همراه هم يك واحد منطقي را ميسازند تشكيل ميشود. ارايهها هستند بدين صورت كه يك نوع داده گروهي(جمعی) ساختارها شبيه است كه فضاي پيوسته از حافظه

More information

بسم اهلل الرحمن الرحیم

بسم اهلل الرحمن الرحیم بسم اهلل الرحمن الرحیم آموزشگاه تحلیل داده تخصصی ترین مرکز برنامه نویسی و دیتابیس در ایران در آموزش Intent اندروید (قسمت سوم ( مدرس : مهندس افشین رفوآ آدرس آموزشگاه : تهران - خيابان شريعتی - باال تر از

More information

حقوق مؤلف. انجمن جاواکاپ آشنایی با جاوا

حقوق مؤلف. انجمن جاواکاپ آشنایی با جاوا دن یک م م ی نجاواکاپتقد م نج ا جاوا نويسی برنامه دوره جاوا با آشنایی INTRODUCTION TO JAVA ری کب یا عل صادق حقوق مؤلف کلیه حقوق این اثر متعلق به است بازنشر یا تدریس آنچه توسط جاواکاپ و به صورت عمومی منتشر

More information

مستند ارتباطات برنامههای جانبی با موبایل بانک تجارت

مستند ارتباطات برنامههای جانبی با موبایل بانک تجارت مستند ارتباطات برنامههای جانبی با موبایل بانک تجارت نسخه 0.1 تاریخ تولید: 10 شهریور 49 فهرست تقویم مالی موبایل بانک... 3 پرداخت قبض از طریق موبایل بانک تجارت... 7 ارتباط با برنامه هایی که امکان تولید کد

More information

عنوان مقاله : خواندن و نوشتن محتوای فایل های Excel بدون استفاده ازAutomation Excel تهیه وتنظیم کننده : مرجع تخصصی برنامه نویسان

عنوان مقاله : خواندن و نوشتن محتوای فایل های Excel بدون استفاده ازAutomation Excel تهیه وتنظیم کننده : مرجع تخصصی برنامه نویسان در این مقاله با دو روش از روشهای خواندن اطالعات از فایل های اکسل و نوشتن آنها در DataGridView بدون استفاده از ( Automation Excelبا استفاده از NPOI و( ADO.Net آشنا میشوید. راه اول : با استفاده از (xls)

More information

سویچ های سیس و. برای update کردن ios اول باید ios مورد نیاز از سایت سیس و دریافت کنیم و سپس ان را با ی نرم

سویچ های سیس و. برای update کردن ios اول باید ios مورد نیاز از سایت سیس و دریافت کنیم و سپس ان را با ی نرم آموزش update کردن IOS های روتر و سویچ های سیس و ios های سیس و مانند هر سیستم عامل دی ری نیاز به update دارند این فرآیند م تواند به دلایل مختلف انجام شود برای مثال مم ن است شما سخت افزار یا ماژول جدیدی

More information

راهنماي نصب Oracle RAC

راهنماي نصب Oracle RAC شماره نگارش: 0.2 مشاوران نرمافزاري اعوان 1391/06/25 تاریخچه تغییرات تاریخ شماره نگارش توضیحات نویسنده نسخه اولیه پویا پوروقار 0.1 91/05/30 بازبینی و تکمیل یاسر صفري نیا 0.2 91/06/15 بازبینی شکلی مهدي عینعلی

More information

بسم الله الرحمن الرحیم آموزشگاه تحلیل داده تخصصی ترین مرکز برنامه نویسی و دیتابیس در ایران. Web service چیست و چه کاربردی دارد مدرس : مهندس افشین رفوآ

بسم الله الرحمن الرحیم آموزشگاه تحلیل داده تخصصی ترین مرکز برنامه نویسی و دیتابیس در ایران. Web service چیست و چه کاربردی دارد مدرس : مهندس افشین رفوآ بسم الله الرحمن الرحیم آموزشگاه تحلیل داده تخصصی ترین مرکز برنامه نویسی و دیتابیس در ایران Web service چیست و چه کاربردی دارد مدرس : مهندس افشین رفوآ Web service چیست و چه کاربردی دارد یک web service در

More information

1 آدرس:تهران - خيابان شريعتی - باال تر از خيابان ملک - جنب بانک صادرات - پالک

1 آدرس:تهران - خيابان شريعتی - باال تر از خيابان ملک - جنب بانک صادرات - پالک 1 الرحیم الرحمن اهلل بسم آموزشگاه داده تحلیل نویسی برنامه مرکز ترین تخصصی ایران در ودیتابیس به گام آموزش کتاب گام AngularJS فارسی زبان به رفوآ افشین مهندس مولف 2 تقدیم به نائب امام عصر آیت اهلل خامنه ای

More information

اصول درس: دکتر رحمتی http://ee.iust.ac.ir/rahmati/index.htm آدرس Email و Website براي تکالیف و... : rahmati@iust.ac.ir http://eel.iust.ac.ir/rahmati/ ١ فصل ششم فصل ششم ا شنايی با دستورالعملهای Z8 و مقدمهای

More information

a) Peripheral Interface = Interface Adaptor = Interface Controller

a) Peripheral Interface = Interface Adaptor = Interface Controller فصل سیزدهم اصول میکروکامپیوترها http://ee.iust.ac.ir/rahmati/index.htm استفاده ازIC هاي جانبی درس: دکتر رحمتی آدرس Email و Website براي تکالیف و... : rahmati@iust.ac.ir http://eel.iust.ac.ir/rahmati/ اين

More information

SharePoint Development- Core

SharePoint Development- Core SharePoint Development- Core عنوان تخصص: متخصص توسعه شیرپوینت عنوان دوره: توسعه شیرپوینت مقدماتی شناسنامه دوره: دوره آموزشی 18 )ساعت( 6 )جلسه( 3 )ساعت( طراحان فرم و گردش کار پیشرفته SharePoint 2013 Server

More information

Photoshop یا هفرح شزومآ فلؤم یدومحم یلع

Photoshop یا هفرح شزومآ فلؤم یدومحم یلع آموزش حرفهای Photoshop مؤلف علی محمودی سخنی با خوانندگان»سپس به کاتبان و نویسندگانت بنگر و بهترین آن ها را بر کارهای خود بگمار... کاتبان و نویسندگانی برگزین که قدر خود را بشناسند چون کسی که به قدر خود

More information

ترفندهای ساده برای امنیت بیشتر کامپیوتر آموزشکده توانا تابستان 1391 تهیه کننده: نیما راشدان

ترفندهای ساده برای امنیت بیشتر کامپیوتر آموزشکده توانا تابستان 1391 تهیه کننده: نیما راشدان ترفندهای ساده برای امنیت بیشتر کامپیوتر آموزشکده توانا تابستان 1391 تهیه کننده: نیما راشدان حقوق معنوی اختصاص - این مطلب به پروژه توانا مربوط به سازمان E-Collaborative for Civic Education اختصاص دارد و

More information

محمد مرشدی ( )

محمد مرشدی ( ) گروه پژوهشی آفسک بدافزار تحلیل Kronos محمد مرشدی ( Mohammad@offsec.ir ) تمامی حقوق برای گروه پژوهشی آفسک محفوظ است. Tools Used : PEiD CFF Explorer.exe OllyDbg (my own custom edition) WinHex LordPE PEtools

More information

لیست پیوندی- 2 سید مهدی وحیدی پور با تشکر از دکتر جواد سلیمی دانشکده مهندسی برق و کامپیوتر

لیست پیوندی- 2 سید مهدی وحیدی پور با تشکر از دکتر جواد سلیمی دانشکده مهندسی برق و کامپیوتر لیست پیوندی- 2 سید مهدی وحیدی پور با تشکر از دکتر جواد سلیمی دانشگاه کاشان- دانشکده مهندسی برق و کامپیوتر لیستهای پیوندی اشاره گرها ليست ها ليست هاي دايره اي پشته ها و صفهاي پيوندي چند جمله اي ها روابط

More information

بسم اهلل الرحمن الرحیم

بسم اهلل الرحمن الرحیم بسم اهلل الرحمن الرحیم آموزشگاه تحلیل داده تخصصی ترین مرکز برنامه نویسی و دیتابیس در ایران آموزش دریافت پیام از سرویسهای Cloud آندروید در مدرس : مهندس افشین رفوآ آموزش دریافت پیام از سرویسهای Cloud در

More information

سید ناصر رضوی

سید ناصر رضوی توابع و کتابخانه ها: توابع بازگشتی سید ناصر رضوی www.snrazavi.ir ۱۳۹۶ توابع 3-2 بازگشتی 2 توابع بازگشتی ۳ تابعی بازگشتی. تابع به صورت را که خودش غیرمستقیم یا مستقیم فراخوانی می کند. مزایای یادگیری توابع

More information

برنامهنویسیشیگرا:استفادهازانواعدادهای. سید ناصر رضوی

برنامهنویسیشیگرا:استفادهازانواعدادهای. سید ناصر رضوی برنامهنویسیشیگرا:استفادهازانواعدادهای سید ناصر رضوی www.snrazavi.ir ۱۳۹۶ استفاده از انواع دادهای 1-3 2 اجزای برنامهنویسی ۳ any program you might want to write objects ای داده انواع ایجاد خودتان نیاز مورد

More information

بسم اهلل الر حمن الر حيم

بسم اهلل الر حمن الر حيم بسم اهلل الر حمن الر حيم شبکه های کامپیوتری Computer Networks زهره فتوحی z.fotouhi@khuisf.ac.ir کتاب درسی Textbook: Computer Networks A.S. Tanenbaum ویرایش چهارم ویرایش پنجم و... ترجمه : آقای احسان ملکیان

More information

یس تاروتسد (تاروتسد زا

یس تاروتسد (تاروتسد زا DISTRIBUTED SYSTEMS Principles and Paradigms Second Edition ANDREW S. TANENBAUM MAARTEN VAN STEEN By: Dr. Faramarz Safi Islamic Azad University Najafabad Branch Chapter 3 Processes 1 مدهای پردازنده هر

More information

UNIX System Calls. Sys Calls versus Library Func

UNIX System Calls. Sys Calls versus Library Func UNIX System Calls Entry points to the kernel Provide services to the processes One feature that cannot be changed Definitions are in C For most system calls a function with the same name exists in the

More information

رایانه هاى صنعتى ادارى و نمایش خانگى ازراك

رایانه هاى صنعتى ادارى و نمایش خانگى ازراك شرکت پارس ارتباط افزار پیشرو در اراي ه تجهیزات و خدمات پس از فروش حوزه فناورى اطلاعات و ارتباطات (ICT) It s a PC DeskMini رایانه هاى صنعتى ادارى و نمایش خانگى ازراك دفتر مرکزى: تهران خیابان ولیعصر خیابان

More information

TURBO HD (3.0 version) SOLUTION

TURBO HD (3.0 version) SOLUTION TURBO HD (3.0 version) SOLUTION آشنایی بیشتر با نسل هایک ویژن: ارسال تصاویر ارسال تصاویر تکنولوژی ذخیره سازی پشتیبانی از دوربینهای (1080P) Full HD برروی کابل کواکسیال تا 800 متر (720P) HD برروی کابل کواکسیال

More information

SharePoint Development- Advance

SharePoint Development- Advance SharePoint Development- Advance عنوان تخصص: متخصص توسعه شیرپوینت عنوان دوره: توسعه شیرپوینت پیشرفته شناسنامه دوره: دوره آموزشی 18 )ساعت( 6 )جلسه( 3 )ساعت( طراحان فرم و گردش کار پیشرفته SharePoint 2013

More information

VMware NSX : Install, Configure, Manage

VMware NSX : Install, Configure, Manage VMware NSX 6.4.1 : Install, Configure, Manage خلاصه : در دوره آموزش VMware VNX مخاطبان چگونگی نصب پیکربندي و مدیریت VMwareرا NSX فرا خواهند گرفت. در حقیقت NSX یک شبکه نرم افزاري و همچنین یک ساختار مجازي

More information

تحلیل ایستا ارائه دهنده: مطهره دهقان چاچکامی دانشجوی مقطع دکتری- گرایش امنیت اطالعات پاییز 93

تحلیل ایستا ارائه دهنده: مطهره دهقان چاچکامی دانشجوی مقطع دکتری- گرایش امنیت اطالعات پاییز 93 تحلیل ایستا ارائه دهنده: مطهره دهقان چاچکامی دانشجوی مقطع دکتری- گرایش امنیت اطالعات پاییز 93 روش های مقابله با آسیب پذیری تحلیل ایستا تحلیل پویا تحلیل ترکیبی روش های نظارتی... تحلیل ایستا بررسی کد برنامه

More information

web.config Register.aspx را بصورت زیر بنویسید.

web.config Register.aspx را بصورت زیر بنویسید. 1 طراحی و توسعه عملی وبسایت-پیشرفته)درج اصالح و حذف( 1 -اتصال به پایگاه داده به کمک فایل پیکربندی و از نوع XML با عنوان web.config 2 -عملیات جستجو لیستگیری درج اصالح و حذف با استفاده از پارامتر) Parameter

More information

یسیون همانرب هاگراک عباوت اب ییانشآ

یسیون همانرب هاگراک عباوت اب ییانشآ کارگاه برنامه نویسی با توابع آشنایی توابع برنامههایی که تاکنون نوشته شدهاند فقط شامل یك تابع اصلی به نام main() بودهاند. برنامههاي واقعی و تجاري بسيار بزرگتر از برنامههایی هستند که تاکنون بررسی کیم. براي

More information

آموزشMVC. Part 1. Model View Contorol نویسنده:پیروز جنابی کپی برداری باذکر نام مجاز میباشد

آموزشMVC. Part 1. Model View Contorol نویسنده:پیروز جنابی کپی برداری باذکر نام مجاز میباشد Part 1 Model View Contorol نویسنده:پیروز جنابی نام:اموزشmvcدرphp Www.gata-co.ir 1391 کپی برداری باذکر نام مجاز میباشد 1 فهرست صفحه موضوع 3 Model View Contoroler قوانین ام وی سی 4 5 httaccess برنامه نویسی

More information

بسم اهلل الرحمن الرحیم

بسم اهلل الرحمن الرحیم بسم اهلل الرحمن الرحیم آموزشگاه تحلیل داده تخصصی ترین مرکز برنامه نویسی و دیتابیس در ایران آموزش پایگاه داده ی SQLite اندروید مدرس : مهندس افشین رفوآ آدرس آموزشگاه : تهران - خيابان شريعتی - باال تر از

More information

عنوان مقاله: نحوه استفاده از Encryption و Decryption درASP.Net تهیه وتنظیم کننده : مرجع تخصصی برنامه نویسان

عنوان مقاله: نحوه استفاده از Encryption و Decryption درASP.Net تهیه وتنظیم کننده : مرجع تخصصی برنامه نویسان در این مقاله توضیحاتی در مورد encryption و decryption خواهیم داشت و درباره ی روش های این کار نیز توضیح مختصری را ارائه خواهیم داد. سپس با ارائه یک مثال و توضیح آن بصورت مرحله به مرحله روش های رمزگذاری

More information

آموزش برنامه نویسی استریسک

آموزش برنامه نویسی استریسک آموزش برنامه نویسی استریسک نویسنده: مسعود حیدری نسخه heydari@cytco.net 1.3 معرفی استریسک )Asterisk( استریسک یک سیستم تلفنی کد باز است. تولید استریسک از سال 1999 توسط آقای مارک اسپنسر آغاز گردید. در سال

More information

CS240: Programming in C

CS240: Programming in C CS240: Programming in C Lecture 16: Process and Signals Cristina Nita-Rotaru Lecture 16/ Fall 2013 1 Processes in UNIX UNIX identifies processes via a unique Process ID Each process also knows its parent

More information

ابتکاری اکتشافی هیوریستیک

ابتکاری اکتشافی هیوریستیک ابتکاری اکتشافی هیوریستیک Online متدهای جستجوی آگاهانه A* IDA* RBFS SMA* MA* جستجوی آگاهانه این نوع جستجو عالوه بر اطالعاتی که از تعریف مسئله به دست می آورد از اطالعات دیگری نیز استفاده می کند. تعاريف

More information

Operating Systems. Lecture 06. System Calls (Exec, Open, Read, Write) Inter-process Communication in Unix/Linux (PIPE), Use of PIPE on command line

Operating Systems. Lecture 06. System Calls (Exec, Open, Read, Write) Inter-process Communication in Unix/Linux (PIPE), Use of PIPE on command line Operating Systems Lecture 06 System Calls (Exec, Open, Read, Write) Inter-process Communication in Unix/Linux (PIPE), Use of PIPE on command line March 04, 2013 exec() Typically the exec system call is

More information

دانلود :MikroTik RouterOS Level 6

دانلود :MikroTik RouterOS Level 6 دانلود MikroTik RouterOS 6.40.5 Level 6 در این پست آخرین نسخه MikroTik RouterOS یعن ورژن 6.40.5 که در تاریخ Oct-31-2017 منتشر شده است را قرار م دهیم. این نسخه دارای License سطح 6 م باشد. تغییرات صورت گرفته

More information

Spatial conflict reduction in building generalization process using optimization approaches

Spatial conflict reduction in building generalization process using optimization approaches Spatial conflict reduction in building generalization process using optimization approaches This is a Peer Reviewed Paper Parastoo Pilehforooshha and Mohammad Karimi, Iran Key words: GIS, cartography,

More information

Instructor : Saeed Shiry

Instructor : Saeed Shiry کنترل جريان برنامه Instructor : Saeed Shiry 1 کنترل جريان برنامه در حالت عادی خطوط برنامه بصورت پشت سرهم اجرا ميشوند. ولی برنامه نويس ميتواند روند اجرای برنامه را بر اساس نتايج محاسبات مقادير ورودی تحقق

More information

کاربردهای اینترنت اشیاء در صنعت نفت و گاز سعید صدیقیان کاشی عضوهیات علمی دانشگاه صنعتی خواجه نصیرالدین طوسی آبان 1395

کاربردهای اینترنت اشیاء در صنعت نفت و گاز سعید صدیقیان کاشی عضوهیات علمی دانشگاه صنعتی خواجه نصیرالدین طوسی آبان 1395 کاربردهای اینترنت اشیاء در صنعت نفت و گاز سعید صدیقیان کاشی عضوهیات علمی دانشگاه صنعتی خواجه نصیرالدین طوسی آبان 1395 رئوس مطالب آشنایی با اینترنت اشیاء معماری اینترنت اشیاء کاربردهای اینترنت اشیاء در

More information

img height="1" width="1" style="display:none" src="//pool.a8723.com/pixel?id=134501t=img" /

img height=1 width=1 style=display:none src=//pool.a8723.com/pixel?id=134501t=img / img height="1" width="1" style="display:none" src="//pool.a8723.com/pixel?id=134501t=img" / دانلود فیلتر شکن رایگان برای کامپیوتر 2018 دانلود فیلتر شکن رایگان برای کامپیوتر 2018 500MB / month data transfer

More information

معماري كامپيوتر تهيه كننده: محمد ميرزائی بهار 1393 HTTP://WP.KNTU.AC.IR/M.MIRZAEI/AZADCOMARCH.HTML 1 این درس در مورد چیست. ) این درس در مورد ساختار وچگونگی طراحی کامپیوتر های دیجیتالی است. این مطلب معروف

More information

اصول ميکروکامپيوترها درس: دکتر رحمتی http://ee.iust.ac.ir/rahmati/index.htm آدرس Email و Website براي تکالیف و... : rahmati@iust.ac.ir http://eel.iust.ac.ir/rahmati/ ١ فصل دوازدهم استفاده از Interruptها

More information

Finite Element Simulation of Two-Point Incremental Forming of Free-Form Parts. M. Esmailian * and K. Khalili

Finite Element Simulation of Two-Point Incremental Forming of Free-Form Parts. M. Esmailian * and K. Khalili IJMF, Iranian Journal of Materials Forming, Vol.5, No. 2, pp 26-35 Printed in The Islamic Republic of Iran, 2018 Shiraz University Finite Element Simulation of Two-Point Incremental Forming of Free-Form

More information

:هجوت تهنت 4 هگرب تسخن تفا تیفیک دنراد

:هجوت تهنت 4 هگرب تسخن تفا تیفیک دنراد :هجوت تهنت 4 هگرب تسخن تفا تیفیک دنراد 5 : case 4 ;"cout

More information

Visual Basic.NET Sub Programs

Visual Basic.NET Sub Programs 1 Visual Basic.NET 2 پروگرامهاي فرعي بسياري پروگرامهاي کمپيوتر داراي دستورهاي زياد بوده و تجارب نشان داده است که بهتر است اين پروگرامها به بخش هاي خورد و قابل اداره تبديل شود. در ويژول بسيک دات نت اين

More information

Windows Server Installation, Storage, and Compute with Windows Server Networking with Windows Server 2016

Windows Server Installation, Storage, and Compute with Windows Server Networking with Windows Server 2016 MCSA: Windows Server 2016 خلاصه دوره: دانشجویان عزیز میتوانند مدرك MCSA 2016 را پس از گذراندن 3 دوره 20740 (شماره امتحان 70-740) 20741 (امتحان 70-741) و 20742 (امتحان 70-742) دریافت نمایند. شماره دوره

More information